因为layui官网说 如果弹层的内容content是某个DOM元素的话,要放在body的根节点下。不能放在div里面了。
所以如果不在body根目录下的话会导致遮罩遮挡全屏,因为最后生成的遮罩DOM元素的位置是body的子级,所以知道弹层的DOM要和遮罩的DOM 要在同一层。
如图:
所以这里再弹层的success的事件里面进行了处理,将遮罩的DOM位置挪动了一下,和弹层DOM元素同一级,代码如下:
var ht = null
table.on('tool(orderList)', function (obj) {
selectData = obj.data;
var layEvent = obj.event;
if (layEvent == 'delete') { //表格按钮名
console.log( selectData.id)
ht=layer.open({
type: 1,
shade: 0.3,
title: selectData.id+"合同", //不显示标题
area: ['445px', '560px'],
shadeClose:true,
content: $('.tableBox')
,success:function(layero){
var mask = $(".layui-layer-shade");
mask.appendTo(layero.parent());
//其中:layero是弹层的DOM对象
}
});
}
}
layer.close(ht)
给弹框定义名称,关闭时可使用layer.close(弹框变量名)
转截g
layui弹层与遮罩层定位问题解决
博客内容讲述了在使用layui弹窗插件时遇到的问题,即当弹层内容是DOM元素且不在body根节点下时,遮罩会遮挡全屏。解决方案是在弹层成功加载后,将遮罩DOM元素移动到与弹层同一级,以确保正确显示。通过调整遮罩的层级关系,解决了遮罩和弹层的显示问题。
1万+

被折叠的 条评论
为什么被折叠?



