Google Chrome Pinch-to-zoom prevention



我正在Microsoft Surface Pro 2运行Windows 8.1上为Chrome开发一个针对Chrome的应用程序。最近,Chromium团队决定要在Windows 8中添加Chrome中的捏合到Zoom手势,这一切都很好。但是,他们没有在Chrome的设置中添加标志来禁用此行为,因为我们当中那些不希望捏到Zoom功能的人。

现在,我试图通过其他方式禁用浏览器的默认行为。我尝试的第一件事是添加此元标记:

<meta name="viewport" content="width=device-width, initial-scale=1.5, maximum-scale=1.5, user-scalable=no" />

它没有效果。我还一直在尝试使用hammer.js触摸库以有限的成功来禁用行为。足够快地捏住仍然可以放大页面。

有人知道一种有效的方法来禁用Windows 8.1的Chrome上的捏到Zoom行为?

基于用户的方法:

启用视口元标记支持:

  1. chrome://flags
  2. 单击启用"启用视口元标记"

程序化方法

(如上所述所建议):

  1. touchmove事件
  2. 如果检测到两次触摸,请在他们上拨打preventDefault

注意:始终防止touchmove会导致简单的滚动停止工作

不幸的是,似乎不可能完全阻止。

Matyas的解决方案将效果很好,直到您开始使用一根手指滚动,然后将另一根手指放下并捏住缩放。

在这种情况下调用预防违规会引起警告:"忽略尝试取消touchmove事件,以取消= false,因为滚动正在进行中,无法中断。"

,缩放到缩放没有被阻止。

这似乎是一个错误。

最新更新