4

是否可以禁用通过双击 Chrome 上的元素触发的上下文缩放?(设置:Nexus 10 | Android 4.3 | Chrome 30)。

双击不是本机触摸事件(touchstart、touchend 等)之一。似乎唯一的解决方案是自己定义 doubletap 事件的库(jquery-doubletap 和hammer.js),但我在使用这些时遇到了问题(https://github.com/EightMedia/hammer.js/问题/388)。

谁能解释一下双击事件是如何触发的?它似乎不是元素事件,而是由浏览器本身处理的事件(每个浏览器都规定了自己独特的行为)。

最后,有没有办法禁用双击缩放?对我来说,这是一个 UX 杀手。谢谢。

4

2 回答 2

5

在 Android 版 Chrome 的未来版本中,当您设置了视口时,双击将被移除。如果您想在今天禁用它以保持稳定,您需要在视口中设置 user-scalable=no。

这将禁用缩放(这可能不利于可访问性),但应该允许您获取所有触摸事件。

于 2013-11-24T23:30:09.550 回答
1

这段代码基本上只会阻止双击功能的发生。每个 touchstart 事件仍会触发该事件,因此只需将任何其他功能放在该 if 语句之外,您就可以摆脱烦人的双击缩放功能。

var time_stamp = 0; // Or Date.now()
window.addEventListener("touchstart", function(event_) {
    if (event_.timeStamp - time_stamp < 300) { // A tap that occurs less than 300 ms from the last tap will trigger a double tap. This delay may be different between browsers.
        event_.preventDefault();
        return false;
    }
    time_stamp = event_.timeStamp;
});
于 2015-02-05T20:46:23.187 回答