谷歌Chrome缩放防缩

时间:2014-03-06 18:18:39

标签: javascript html google-chrome windows-8.1 hammer.js

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

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

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

没有效果。我也一直在尝试使用hammer.js触摸库来禁用行为,但成功有限;捏得足够快仍然会缩放页面。

是否有人知道在Chrome for Windows 8.1上禁用缩放到缩放行为的有效方法?

2 个答案:

答案 0 :(得分:7)

基于用户的方法:

通过以下方式启用视口元标记支持:

  1. 转到chrome://flags
  2. 点击启用“启用视口元标记”
  3. 程序化方法

    (如上文评论中所述):

    1. 收听touchmove个活动
    2. 如果您检测到两次触摸,则
    3. 在其上调用preventDefault
    4. 注意:始终阻止touchmove会导致简单滚动停止工作

答案 1 :(得分:1)

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

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

在这种情况下调用preventDefault会导致警告:“忽略尝试以cancelable = false取消touchmove事件,例如因为滚动正在进行且无法中断。”

并且不会阻止缩放。

这似乎是一个错误。