在 vue使用ant-design ,抽屉(drawer)里面嵌套弹出框(model)出现蒙层遮挡弹框问题

2,370 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

图片.png

问题:

有时候会遇到这种情况,先打开抽屉,然后再抽屉里打开模态窗,出现模态窗被抽屉的的蒙层遮挡

图片.png

可能造成这种情况的原因是: a-drawer和a-modal都是挂载到body上面的,并且我发现只有a-drawer的层级比a-modal高,可能会造成这种情况。

图片.png

解决思路:减低抽屉(drawer)和模态窗(model)的层级,使模态窗(model)的层级高于抽屉(drawer)的层级。

第一种解决方法:

我查看 Ant Design Vue的官方文档2x.antdv.com/components/…)发现,Drawer 抽屉组件中的API中有这样一个API

图片.png

按我的理解是,用这个API的解决思路是,将抽屉(drawer)挂载到当前的父元素上,然后模态窗(model)是挂载在body上的,这样就会让模态窗(model)的层级比抽屉(drawer)的层级高。使模态窗(model)显示在抽屉(drawer)上面,不会被挡住。

ref=“drawer”

:getContainer=“() => $refs.drawer”

具体实现如下图

图片.png

第二种解决方法:

是直接修改抽屉(drawer)或直接修改模态窗(model)的css中样式属性中的,z-index 属性,

降低抽屉(drawer)的z-index 属性的值

或提高模态窗(model)的z-index 属性的值。

图片.png

注意:

修改抽屉(drawer)或修改模态窗(model)样式的时候, 可能会造成z-index 属性没有修改成功的情况, 记得F12查看一下样式是否修改成功。如果没有可以用 *css深度作用选择器(即样式穿透) *,样式穿透,强制修改ant-design的原生样式。

cover.jpg

本人新人作者一枚,望多多支持,如有错误,还请指出,不要让我一错再错,哈哈!