touchmove 事件在移动端怎么阻止默认滚动? A. 艳平 提问于 2026-03-12 16:26:19 阅读 4 移动 我在做一个移动端的滑动组件,绑定了 touchmove 事件,但页面还是会跟着上下滚动,体验很糟。 试过在回调里加 e.preventDefault(),但有时候没效果,尤其是在 iOS Safari 上。是不是还要配合其他设置? 这是我的代码: element.addEventListener('touchmove', (e) => { e.preventDefault(); // 自定义滑动逻辑 }); 我来解答 赞 1 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 毓琳 Dev Lv1 iOS Safari 上单纯在 touchmove 里 preventDefault 不好使,你得在绑定事件的时候把 passive 关掉: element.addEventListener('touchmove', (e) => { e.preventDefault(); // 自定义滑动逻辑 }, { passive: false }); 或者更省事,直接给元素加 CSS: element { touch-action: none; } 第二种方式现在主流浏览器都支持,比写 JS 省心多了。 回复 点赞 2026-03-12 17:02 加载更多 相关推荐 1 回答 13 浏览 TouchMove 事件中 preventDefault 无效是怎么回事? 我在做一个移动端的滑动删除功能,监听了 touchmove 事件,想阻止页面滚动,但调用 e.preventDefault() 完全没用,页面还是跟着手指上下滚。我试过在 touchstart 里也加... Newb.子尧 交互 2026-03-04 20:55:17 1 回答 11 浏览 移动端 touchmove 监听加了 passive 为啥还是卡顿? 我在做移动端的滑动组件,给 touchmove 事件加了 { passive: true },但页面滚动还是明显卡顿,是不是我用错了? 之前没加 passive 的时候 Chrome 控制台有警告,加... Zz珍珍 优化 2026-03-09 11:51:18 2 回答 30 浏览 为什么移动端touch事件在子元素滑动时触发了父元素的touchmove? 我在开发移动端侧滑菜单时遇到问题:父容器有touchmove监听处理全局滚动,但子元素的可滑动区域(比如卡片)滑动时,父元素的事件也跟着触发了。我试过在子元素的touchmove里调用stopProp... 付楠 ☘︎ 移动 2026-02-03 23:52:31 2 回答 23 浏览 touchmove 事件在 React 中为什么不触发? 我在写一个移动端的滑动组件,给 div 加了 onTouchMove 事件,但手指滑动时完全没反应,onTouchStart 和 onTouchEnd 都能正常触发,就 touchmove 不行,这是... Good“统元 移动 2026-03-01 23:48:21 2 回答 17 浏览 touchmove 事件在移动端频繁触发导致性能卡顿怎么办? 我在用 React 做一个滑动删除组件,监听 touchmove 的时候发现页面特别卡,手指一划就掉帧。试过加 passive: true 但好像没太大改善,是不是我写法有问题? 这是我的事件绑定代码... Zz宏娟 移动 2026-02-27 15:17:18 1 回答 54 浏览 移动端手势滑动时页面跟着滚动怎么解决? 我在开发一个支持左右滑动切换卡片的移动端页面,用touchstart和touchmove事件检测手势位移,但发现当手指滑动距离较大时页面会跟着滚动,导致手势识别不准。试过在touchmove里加e.p... Designer°国娟 移动 2026-02-12 09:08:31 2 回答 23 浏览 为什么touchstart事件在移动端触发后无法阻止默认行为? 我在移动端开发时给按钮绑定了touchstart事件,想要阻止页面滑动的默认行为。代码是这样写的: element.addEventListener('touchstart', (... W″翌喆 移动 2026-02-07 15:18:25 1 回答 26 浏览 移动端捏合缩放手势怎么监听才靠谱? 我在做移动端图片预览功能,想支持双指捏合缩放,但 touchstart 和 touchmove 事件里判断距离变化总是不准,有时候还会和页面滚动冲突。 试过用 event.touches.length... Prog.子阳 移动 2026-02-26 14:04:19 2 回答 37 浏览 移动端触摸事件阻止冒泡失效怎么办? 在移动端开发中,我给一个按钮绑定了touchstart事件,但它的点击事件总被父元素的滚动事件劫持。试过在子元素事件里加e.stopPropagation()和preventDefault,但点击时父... 宇文淑霞 移动 2026-02-14 12:23:43 2 回答 38 浏览 移动端滚动卡顿时,怎么用Passive监听优化事件? 在优化移动端页面时,我给触摸事件加了{ passive: true },滚动确实流畅了,但有个问题:touchMove里调用event.preventDefault()阻止滚动时完全没反应了,这是为什... 毓金酱~ 优化 2026-02-08 23:38:27
或者更省事,直接给元素加 CSS:
第二种方式现在主流浏览器都支持,比写 JS 省心多了。