elementui弹窗里面出弹窗有一层遮罩问题
Element UI 弹窗(Dialog)中再出现一个弹窗时,可能会出现遮罩层不完全覆盖内层弹窗的问题。这通常是因为遮罩层是附加到 body 上的,而内层弹窗(Dialog)是相对于父元素定位的。
解决方法:
- 使用 Element UI 提供的
append-to-body
属性。将内层弹窗的append-to-body
属性设置为true
,这样遮罩层就会直接附加到 body 上,从而覆盖整个页面。
<el-dialog :append-to-body="true">
<!-- 内容 -->
</el-dialog>
- 如果使用的是 Element UI 的旧版本,没有
append-to-body
属性,可以通过自定义遮罩样式来解决。在内层弹窗打开时,动态修改遮罩的样式,使其覆盖整个页面。
// 打开内层弹窗之前
const $mask = document.querySelector('.el-dialog__wrapper .el-overlay');
$mask.style.position = 'fixed';
$mask.style.left = '0';
$mask.style.top = '0';
$mask.style.width = '100vw';
$mask.style.height = '100vh';
确保在内层弹窗关闭时,恢复原有的遮罩样式。
以上方案可以解决大多数遮罩层不完全覆盖内层弹窗的问题。如果问题依然存在,可能需要进一步检查样式或者使用开发者工具调试,查看是否有其他样式影响了遮罩层的显示。
评论已关闭