iOS Safari标志用于停止页面运动?

时间:2011-11-04 19:16:09

标签: iphone ios mobile safari touch-event

我很好奇是否有人找到了解决方案,当用户在页面上拖动手指时禁用默认弹簧加载的iOS页面移动。对于完全可见的页面(即,不需要滚动),页面会移动并弹回原位。

我发现禁用“touchstart”会有效解决这个问题,但是它会打破所有点击事件!例如:

document.addEventListener('touchstart', function(e) {
    e.preventDefault();
}, false);

我尝试了其他触摸/鼠标事件,但没有运气。我猜那里有人知道一个秘密的webkit CSS或JavaScript属性可以禁用这个功能。

编辑:作为我正在寻找的一个例子,这里是一个类似的答案,通过CSS禁用其他默认的iOS Webkit行为。不幸的是,这似乎不适用于我的问题:

Prevent default Press but not default Drag in iOS MobileSafari?

1 个答案:

答案 0 :(得分:2)

我可以发誓我试过这个,但看起来" touchmove"诀窍呢?

document.addEventListener('touchmove', function(e) {
    e.preventDefault();
}, false);

更新:经过更多测试后,是的,确实这样做了。似乎永远不应该在触摸开始时使用e.preventDefault()。因为这也可以防止随后的所有其他鼠标事件。