ios滚动问题catchtouchmove
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html
根元素加上catchtouchmove="return"就可以了(PS:对cover-view无效)。
在 uniapp 开发微信小程序 中,catchtouchmove
是一个用于 阻止触摸滑动事件向上冒泡 的事件修饰符,常用于实现“页面不能滚动”或“防止穿透滚动”的场景。
📌 基本用途
这个写法的作用是:
✅ 阻止滑动穿透:当弹出一个弹窗(如遮罩层、弹出层)时,防止底层页面继续滚动。
🎯 实际场景示例
假设你有一个弹窗组件,想在弹窗显示的时候防止用户滑动背后的页面:
<view class="mask" v-if="showModal" catchtouchmove>
<view class="modal">
<text>我是弹窗</text>
</view>
</view>
catchtouchmove
会拦截touchmove
事件,防止事件向上冒泡;- 背后的页面不会再因为滑动事件滚动。
🔍 与 bindtouchmove
的区别
属性 | 作用 |
---|---|
bindtouchmove |
监听触摸滑动事件,不阻止冒泡 |
catchtouchmove |
监听并阻止事件继续向上冒泡 |
✅ 典型应用场景
- 遮罩层阻止背景滚动
- 弹出层或模态框中的滑动操作只作用于当前区域
- 移动端侧滑菜单弹出后防止主体页面滚动
如果你在做弹窗、抽屉、遮罩等功能时,发现页面“滑穿了”——这时候就可以给容器加上 catchtouchmove
。