使用JavaScript禁用Chrome浏览器的捏合缩放功能

6
有没有一种方法可以使用JavaScript禁用Chrome的缩放功能?我不想更改chrome://flags中的任何内容。我想禁用Chrome的默认缩放和滑动到上一页行为,而是想编写自己的平移/缩放代码。我能够处理所有这些事件,但调用“preventDefault”无效。处理鼠标滚轮、ctrl+和ctrl-事件并在那里调用“preventDefault”也无效。
最后,我希望在Chrome和IE 11中具有自定义的多点触控缩放和平移功能。IE的平移对我来说完美无缺,但缩放不起作用。
以下是示例脚本:
  <!DOCTYPE html>
    <html>
    <head>
    <title>Test</title>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />

    <script type="text/javascript" src="Scripts/jquery-3.1.0.js" ></script>

    <script type="text/javascript" >
      document.addEventListener('touchstart', function(event){
          event.preventDefault();
      });
      document.addEventListener('touchend', function(event){
          event.preventDefault();
      });
      document.addEventListener('touchmove', function(event){
          event.preventDefault();
      });
      $('*').bind('touchmove', false);
    </script>

   <body>
   <h1 align="center">
    TEST STRING FOR PINCH ZOOM
    </h1>
    </body>
    </html>

可能是如何在移动网页上“禁用”缩放?的重复问题。 - LellisMoon
不,这与移动设备无关。我在Windows 10桌面上的Chrome浏览器中遇到了这个问题(一体机电脑)。虽然我已经使用您提供的链接指定了所有元关键字,但并没有帮助。 - kmkrtich
所以你需要禁用浏览器缩放示例ctrl +/-? - LellisMoon
不,GoogleChrome浏览器默认情况下,如果您打开任何网站,则缩放将适用于整个网页内容。我的意思是,如果您在具有2个手指的触摸屏笔记本电脑上缩放,则会像图像一样进行缩放。 我想处理这部分。防止默认行为并添加我的自定义缩放逻辑,该逻辑仅适用于我的网页的特定部分。 - kmkrtich
1个回答

8
这对我来说很有效,如果有人在这里寻找答案,请参考。
document.addEventListener(
  'wheel',
  function touchHandler(e) {
    if (e.ctrlKey) {
      e.preventDefault();
    }
  },
  { passive: false }
);

2
哇,这正是我寻找了6个月的东西...非常感谢! - Bruno Freire
如果您的网页足够长,具有滚动条仍然可以捏缩放。 ‍♂️ - 700 Software
在哪个浏览器/操作系统上?我刚在Chrome/OSX上尝试了一下,它可以正常工作。 - Ben Swinburne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接