被动事件侦听器是一种新兴的网络标准,是Chrome51附带的一项新功能,可极大提高滚动性能。
通过消除滚动以阻止触摸和滚轮事件监听器的需求,它使开发人员可以选择更好的滚动性能。
问题:
所有现代浏览器都具有线程化滚动功能,即使在运行昂贵的Javascript时,滚动操作也可以平稳运行,但是这种优化由于需要等待任何
touchstart和
touchmove处理程序的结果而被部分挫败,这可能会通过调用来完全阻止滚动
preventDefault()在事件上。
解:{passive: true}
通过将触摸或滚轮侦听器标记为被动,开发人员保证处理程序不会调用
preventDefault以禁用滚动。
This frees the browser up to respond to scrolling immediately without waiting for Javascript, thusensuring a reliably smooth scrolling experience for the user。
document.addEventListener("touchstart", function(e) { console.log(e.defaultPrevented); // will be false e.preventDefault(); // does nothing since the listener is passive console.log(e.defaultPrevented); // still false}, Modernizr.passiveeventlisteners ? {passive: true} : false);


