Mint UI 的 Popup 组件在 iOS 上点击遮罩层无法关闭怎么办?

♫哲铭 阅读 9

我在用 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>
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
UX啸天
UX啸天 Lv1
这个问题是 iOS Safari 的老毛病了,跟 click 事件在移动端的处理方式有关。Mint UI 的 Popup 遮罩层在 iOS 上点击没反应,核心原因是 iOS 对某些元素的 click 事件支持有坑。

直接给你解决方案:

方法一:在 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 事件确实有各种奇怪的限制,做移动端兼容有时候就得这么折腾。
点赞
2026-03-18 08:00