1

touchstart将事件绑定到 KineticJS 圆形对象时,我在 iOS 版 Safari 中遇到了约 500 毫秒的延迟。我尝试event.preventDefault()on函数内调用,认为这会覆盖默认的 iOS 行为,但没有任何区别。我不确定这是否与 KineticJS 有关,这就是为什么我将其从标题中删除(但将其作为标签包含在内)。注意:使用 iOS 模拟器没有延迟——延迟只发生在实际设备(iPhone 4)上。有任何想法吗?

var stage = new Kinetic.Stage({
    container: "container",
    width: $(window).width(),
    height: $(window).height(),
});

var layer = new Kinetic.Layer();

var circle = new Kinetic.Circle({
    x: stage.getWidth() / 2,
    y: stage.getHeight() / 2,
    radius: 70,
    fill: "black",
});

layer.add(circle);
stage.add(layer);

circle.on("touchstart", function() {
    this.setFill("red");
    layer.draw();
});
4

1 回答 1

0

移动浏览器有大约 300 毫秒的延迟,而浏览器等待查看是单击还是双击(因为双击用于缩放)。

这可以通过使用以下方法在最新版本的 Android 设备上删除:

<meta name="viewport" content="width=device-width">

但是,Mobile Safari 不遵循相同的逻辑,并且无法禁用此延迟。

您可以在此处阅读有关此内容的更多信息:http: //updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away

于 2014-01-01T21:48:15.450 回答