在将touchstart
事件绑定到KineticJS圈子对象时,我在Safari for iOS中遇到约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();
});
答案 0 :(得分:0)
移动浏览器有一个约300毫秒的延迟,而浏览器则会等待单击或双击(因为双击是用于缩放)。
可以使用以下方法在最新的Android设备上删除此功能:
<meta name="viewport" content="width=device-width">
但是,Mobile Safari并没有遵循相同的逻辑,并且无法禁用此延迟。
您可以在此处详细了解:http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away