手机浏览器滚动当前页面(或放大缩小)时,默认行为被屏蔽,导致页面静止,导致用户体验差,感觉页面滚动有顿顿的感觉。具体解释:由于touchstart事件对象的cancelable属性为true,也就是说它的默认行为可以通过preventDefault()方法被监听者阻止。但是浏览器无法事先知道一个监听器是否会调用preventDefault(),它只能等待监听器执行完再执行默认行为,而监听器的执行是耗时的,有的甚至是耗时,这将导致页面冻结。即使监听器是一个空函数,也会有一些卡顿,毕竟空函数的执行也是需要时间的。addEventListener的useCapture参数的基本概念:xxx.addEventListener('事件名称',function(xxx){xxx},useCapture)。第一个参数表示事件名称(不包括on,如“点击”);第二个参数表示接收事件处理的函数;第三个参数是useCapture。我们先看看这个东西是什么意思,直接举个例子更直观。
