对抗iOS上的touchstart事件延迟

对抗iOS上的touchstart事件延迟,ios,touch,kineticjs,touchstart,Ios,Touch,Kineticjs,Touchstart,将touchstart事件绑定到KineticJS circle对象时,Safari for iOS中出现约500毫秒的延迟。我尝试在函数上的中调用event.preventDefault(),认为这会覆盖默认的iOS行为,但没有任何区别。我不确定这是否与KineticJS有关,这就是为什么我将其从标题中删除(但将其作为标记包含在内)。注意:使用iOS模拟器没有延迟–延迟仅发生在实际设备(iPhone 4)上。有什么想法吗 var stage = new Kinetic.Stage({

touchstart
事件绑定到KineticJS circle对象时,Safari for iOS中出现约500毫秒的延迟。我尝试在函数上的中调用
event.preventDefault()
,认为这会覆盖默认的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();
});

当浏览器等待查看是单点击还是双击时,移动浏览器会有大约300毫秒的延迟(因为双击表示缩放)

可通过以下方式在最近版本的Android设备上删除此选项:

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

然而,MobileSafari并没有遵循同样的逻辑,也没有办法禁用这种延迟


您可以在此处了解更多信息:

这实际上与此无关,因为他正在绑定到
touchstart
而不是
单击
。我猜有些逻辑需要一段时间来计算?不确定,我自己在处理这个问题。