针对遮罩层遮挡不完全的解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对遮罩层遮挡不完全的解决方法相关的知识,希望对你有一定的参考价值。

参考技术A            我们自己写弹框时,他会有一个遮罩层,页面的内容超过了电脑物理高度,设置height:100%,这个遮罩层就只能挡住物理高度,剩下的那一部分就直接裸漏在外面了。

  那么针对这个问题,我找到了一个方法,

  在html文件中

在css文件中

这里的重点就是父元素的position一定是fixed,原本我们可以设置一个div就可以做到遮罩层的效果,但是传统浏览器不支持rgba的写法,所以只能使用上面的写法,分两个div

ios 下fixed遮罩背景无法动态监听,解决办法

场景:当要弹出一个fixed的对话框(就是一个弹出框),同时给背景添加一个遮罩层,当操作完后想点击遮罩层关闭整个弹出框
条件1:fixed的遮罩层是动态创建的,使用click事件监听不到
条件2:在遮罩的下面有链接或是不能点击的元素(或有操作或有链接跳转等)

针对条件1,使用jQuery的on来监听整个文档,当冒泡到指定元素上时,再执行相应操作

针对条件2,使用touchstart/touchend,会产生点透问题

我的经验以及解决办法:

1、使用jQuery的delegate方法监听click事件

2、使用来自stackoverflow 的建议

On iOS there is no event bubbling without a cursor style. So in your CSS you need to add cursor: pointer; to the element。

因此,最后的解决办法,使用delegate来动态监听点击事件,在遮罩层上加上样式cursor:pointer

如果点击时不想出现一个黑层,可在全局设置*{-webkit-tap-highlight-color:rgba(0,0,0,0)“*”代表不想出现黑影层的元素}

以上是关于针对遮罩层遮挡不完全的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决遮罩层下面的内容仍可滑动问题

Vue之dialog嵌套导致遮罩层遮盖住对话框的解决方法

解决vue3 Vben框架弹窗点击遮罩层不关闭的BUG

解决vue3 Vben框架弹窗点击遮罩层不关闭的BUG

解决vue3 Vben框架弹窗点击遮罩层不关闭的BUG

easyUI弹框被遮罩层遮挡