直接先贴一个链接有比较详细
移动端Web界面滚动性能优化: Passive event listeners
总结一下就是说
按照原来的事件函数顺序,浏览器不知道事件处理函数是否会调用preventDefault阻止默认行为,所以会在事件处理函数之后再进行默认行为。
那么,在滚动的时候,事件函数的效率可能过低,而等待这个函数完成再进行滚动的体验就会有卡顿的感觉,所以现在有了这么个选项:passive。如果值为true时,等于告诉浏览器,事件函数里没有preventDefault,浏览器就会正常的处理默认行为。
目前来看,在高版本的webkit内核浏览器里passive是默认为true的,所以想禁止滚动发现不生效的时候,你得把事件绑定添加这个选项了。
element.addEventListener('touchmove', handler, { passive: false })
网友评论