如何在Android(适用于Android)的Chrome 30中停用双击缩放功能(Nexus 10)

时间:2013-11-05 13:19:59

标签: android google-chrome double-click touch-event nexus-10

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

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

任何人都可以解释双击事件是如何触发的吗?它似乎不是一个元素事件,而是一个由浏览器本身处理的事件(每个浏览器都指示它们自己的独特行为)。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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;// Not sure if you really need this anymore, but whatever.
}
});