jquery touchstart延迟,远远超过mousedown?

时间:2013-11-26 13:14:45

标签: javascript jquery

我正在使用DOM元素构建一个简单的游戏。一旦用户点击屏幕,我需要一个div(包含图像)来移动。使用mousedown可以很好地工作,但是touchstart有一个非常明显的延迟 - 使它无法用于快速反应游戏。

如何减少此延迟?

我的代码:

_myScreen.on('touchstart mousedown', function(){screenClicked();});


function screenClicked(e) {
    var y = e.offsetY;
    model.css({top:y});
}

1 个答案:

答案 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点击延迟。