我正在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行为?
基于用户的方法:
启用视口元标记支持:
- 去
chrome://flags
- 单击启用"启用视口元标记"
程序化方法
(如上所述所建议):
- 听
touchmove
事件 - 如果检测到两次触摸,请在他们上拨打
preventDefault
。
注意:始终防止touchmove
会导致简单的滚动停止工作
不幸的是,似乎不可能完全阻止。
Matyas的解决方案将效果很好,直到您开始使用一根手指滚动,然后将另一根手指放下并捏住缩放。
在这种情况下调用预防违规会引起警告:"忽略尝试取消touchmove事件,以取消= false,因为滚动正在进行中,无法中断。"
,缩放到缩放没有被阻止。
这似乎是一个错误。