在升级到 ios11.3 系统后,阻止页面滚动的代码 e.preventDefault 代码失效了。
document.body.addEventListener('touchmove', function (e) {
e.preventDefault(); //阻止默认的处理方式(阻止下拉滑动的效果)
}, {passive: false}); //passive 参数不能省略,用来兼容ios和android
如果不加 passive:false; 在 ios 上是不能起作用的。
微信在 Android 端和 IOS 端使用的不是同样的浏览器内核:
更新了根文档触摸事件侦听器,默认使用passive:true提高滚动性能并减少崩溃
所以 Safari 中默认使用了 passive:true,告诉浏览器,此监听事件中,不会阻止默认的页面滚动。这将导致设置的 e.preventDefault() 代码失效。
所以 Safari 默认是不会阻止滚动的。
通过 e.preventDefault(); 阻止默认的下拉滑动的效果,通过添加 passive:false 参数来兼容各个浏览器。即可实现阻止移动页面滚动的功能。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有