layer.open() 遮罩层会把弹窗盖住,请问有没有解决方式

提问 已结 12 3065
大白宝宝
大白宝宝 2018-6-19
悬赏:30飞吻
版本:独立版layer 2.0 浏览器:谷歌、火狐、IE10+
子页面中写了一个div 定义了一个id,layer.open用elem的方式加载这个弹窗,遮罩层把弹窗盖住了,请问如何解决?
回帖
  • @大白宝宝 问题解决了,将框架layui.css中的.layui-body的z-index删掉,可以解决这个问题。
    目前去除后,弹窗可以显示在遮罩层上面了。
    不能100%确定这个属性去除后会有哪些影响,目前测下来还没有发现问题。
    @贤心 可以确认下这个解决方案。

    1 回复
  • 这应该是框架问题,.layui-body的z-index的值设置太小,open打开的遮罩层又很大,而且遮罩层被写在了.layui-bodyy之外,所以不受.layui-body的控制,但是open的弹窗却写在了.layui-body中,受.layui-body控制,导致遮罩层在上面,弹窗在下面;这个问题好像是content为对象的时候才会有,如果是对象的html()则不会有问题,因为html()的话,弹窗也会在.layui-body外面不受.layui-body的z-index影响。
    1 回复
  • 如果你不想显示遮罩,可以shade: 0
    0 回复
  • @贤心 快点解决呀~~~
    0 回复
  • @夕阳刻痕 主要不希望弹窗的时候 可以操作其它地方
    0 回复
  • @herox 嗯 是的 但是我不希望把dom都写到js里 那样不好调试 也很乱
    0 回复
  • @herox 我在open的 success回调里 加了一个 $(".layui-layer-shade").appenTo(layer.parent());
    这样 遮罩就不会遮挡弹窗了,但是遮罩只在子页面里有,没有全屏遮盖
    0 回复
  • @大白宝宝 不要这样写,有违正常框架的使用方式。看下我刚回复的解决方案,目前看下来一切正常。
    0 回复
  • @小豪被注册了 好的 我试一下 谢谢
    0 回复
  • @小豪被注册了 刚试了 这样可以 我再看看有没有其它影响 非常感谢
    0 回复