Mint UI 的 Popup 组件在 iOS 上点击遮罩层无法关闭怎么办?
我在用 Mint UI 做一个移动端弹窗,用了 mt-popup 组件,设置 closeOnClickModal=true,在安卓上点遮罩层能正常关闭,但在 iOS Safari 里完全没反应,点了没效果。
已经确认不是 z-index 问题,也试过手动绑定 click 事件去调用 close 方法,还是不行。是不是 iOS 对 click 事件有啥限制?求解!
<mt-popup v-model="showPopup" close-on-click-modal="true">
<div>这是弹窗内容</div>
</mt-popup>
直接给你解决方案:
方法一:在 mt-popup 上绑定原生 click 事件
Mint UI 的 closeOnClickModal 在 iOS 上有时候会失效,试试手动绑定:
方法二:如果方法一不行,加一层遮罩
有些情况下需要自己加个遮罩层来处理点击:
.mask {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
z-index: -1;
}
方法三:检查是否被阻止了事件冒泡
有时候父元素阻止了事件,检查下有没有 event.stopPropagation 或者 .prevent 之类的东西。
大部分情况下方法一就能解决。如果还不行,方法二基本是万无一失的。iOS Safari 对 click 事件确实有各种奇怪的限制,做移动端兼容有时候就得这么折腾。