防止scrollStart事件上的touchCancel

时间:2015-01-14 15:12:16

标签: jquery javascript-events scroll

在Android上,当检测到滚动事件时,会触发touchcancel事件,这会阻止在滚动发生后触发触摸。为了防止touchcancel被触发,我在滚动div上使用touchDeart上的preventDefault。现在的问题是,我需要让touchUp和滚动发生,以便我的手势检测功能正常工作,并且滚动工作:/

这可行吗?

1 个答案:

答案 0 :(得分:0)

除非您在touchmove中阻止默认值,否则

Touchcancel将始终被触发,因为浏览器必须立即控制平移和缩放操作。您最好的选择是相应地使用touch-action CSS属性切换到指针事件界面,这样可以提供更多控制权,因为pointermove可以避免pointercancel,具体取决于您的touch-action CSS属性应用于相关对象。

  

触摸点中断时会触发touchcancel事件   以特定于实现的方式(例如,触摸太多   点数已创建)。

使用指针事件时,touch-action: pan-y将允许浏览器执行常规垂直滚动,并且在执行手势时不会触发pointercanceltouchcancel等效物)垂直即可。 Touch-action: none相当于调用event.preventDefault(),因为它既不会滚动也不会缩放,也不会应用任何默认的浏览器操作。

  

当浏览器确定时,会触发pointercancel事件   不太可能有更多的指针事件,或者如果之后   指针向下事件被触发,然后指针被用来操纵   通过平移,缩放或滚动视口。

查看使用触控和指针界面处理水平滑动事件的this jQuery plugin,并更详细地解释它们之间的差异。