- 由于浏览器必须要在执行事件处理函数之后,才能知道有没有掉用过 preventDefault() ,这就导致了浏览器不能及时响应滚动,略有延迟。
所以为了让页面滚动的效果如丝般顺滑,从 chrome56 开始,在 window、document 和 body 上注册的 touchstart 和 touchmove 事件处理函数,会默认为是 passive: true。浏览器忽略 preventDefault() 就可以第一时间滚动了。
-
在手机端拖拽小功能时遇到这种问题
-
遇到这种问题,解决最快的一种方法就是在全局中引入一个css样式
-
method1:
* {
touch-action: pan-y;
}
- method2:
ele.addEventListener(
'touchstart',
fn,
{ passive: false }
);
完美的解决问题!虽然不影响整体效果,但是作为强迫症,这个问题困扰了好久,,,你们还有哪写方法???