我正在构建一个基于 Phonegap 的 Android/iOS 应用程序。该应用程序应该检测用户的滑动。
在 Android 上,当检测手势时,应用程序在执行我的代码之前始终显示大约 200 毫秒的延迟。
通过阅读,我了解到这种延迟可能是由 Android 区分滑动和普通点击的方式造成的。如果您在触摸后 200 毫秒之前调用 e.preventDefault()
,WebKit 会让您将其视为滑动操作。
问题:
有没有办法完全消除这种延迟并强制 WebKit 假设该事件是滑动,从而消除延迟?
最佳答案
实际上,延迟约为 300 毫秒,本文 [1] 给出了浏览器 OEM 实现此行为的原因。 有一个名为 fastclick [2] 的库,您可以使用它来防止这种情况。 就我个人而言,我使用的是聚合物手势,它的范围更广,但从整体上解决了检测手势的问题并防止了 300 毫秒的延迟。
[1] http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
关于javascript - 防止 Android 中触摸事件出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553426/