如何禁止safari拖动

2019-09-25
1分钟阅读时长

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;
}
Avatar

陈文

热爱生活,喜欢新鲜的事物,希望用自己的能力让世界变得更好,愿望是世界和平。