我正在使用DOM元素构建一个简单的游戏。一旦用户点击屏幕,我需要一个div(包含图像)来移动。使用mousedown可以很好地工作,但是touchstart有一个非常明显的延迟 - 使它无法用于快速反应游戏。
如何减少此延迟?
我的代码:
_myScreen.on('touchstart mousedown', function(){screenClicked();});
function screenClicked(e) {
var y = e.offsetY;
model.css({top:y});
}
答案 0 :(得分:1)
触控设备有300毫秒的延迟。这是来自Icenium团队的TJ VanToll的blog post,解释了这种行为的历史和潜在的解决方案。
帖子的摘录:
虽然浏览器已经提出了一些有趣的解决方案 300毫秒点击延迟,根本没有解决方案可以在任何地方工作。 然而,有很多聪明的人已经考虑过这一点 问题,并为所有人提出了基于JavaScript的解决方案 平台。这些解决方案可分为两个阵营 - 用于指针事件模型和“快速点击”解决方案的polyfill。
让我们先看看一些指针事件polyfills。指针事件 Polyfills
那里有几个polyfill用于指针事件。这里有 更受欢迎的。
Polymer from Google HandJS from Microsoft Points by @Rich-Harris
...
FastClick是由FT实验室开发的一个小型图书馆 旨在防止移动浏览器中的300ms点击延迟。