safari默认有个拖动下拉的效果,在网上找了很多文章都没有用。最终找到了一个能用的,代码如下。
document.body.addEventListener('touchmove', function (e) {
e.preventDefault(); //阻止默认的处理方式(阻止下拉滑动的效果)
}, { passive: false }); //passive 参数不能省略,用来兼容ios和android
之前的只有两个参数,没有用,加上第三个参数 { passive: false }
就可以了。
追加一下:用vue的同学,可以方便的使用vue本身封装的事件处理来替代上述代码,效果是一样的。
<div @touchmove.prevent.stop>
xxx
</div>
可能会导致safari滑动生硬的问题,可以通过添加css解决
.box{
-webkit-overflow-scrolling: touch;
}
网友评论