今天引入fastclick.js的时候点击body突然发现报了个错
Unable to preventDefault inside passive event listener due to target being treated as passive
查了下,发现从 chrome56 开始,为提高页面的滑动流畅度,搞了这么个东西。
解决方法主要有两种:
- 用css的方式,添加* { touch-action: none; } ,这样任何触摸事件都不会产生默认行为,而 touch 事件照样能触发。
- 注册处理函数时,用如下方式,明确声明为不是被动的
window.addEventListener('touchmove', func, { passive: false })