阻止移动端浏览器网页双指缩放行为

  1. 使用meta标签。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
  1. meta标签iOS Safari无效,实现阻止默认事件。
    Safari浏览器中有一组事件:gesturestart、gesturechange、gestureend事件,在多个手指出触摸屏幕时触发,可以通过阻止这些事件的默认行为阻止浏览器缩放。
 <script>
    window.onload = function() {
        var lastTouchEnd = 0;
        document.addEventListener('touchstart', function(event) {
            if (event.touches.length > 1) {
                event.preventDefault();
            }
        });
        document.addEventListener('touchend', function(event) {
            var now = (new Date()).getTime();
            if (now - lastTouchEnd <= 300) {
                event.preventDefault();
            }
            lastTouchEnd = now;
        }, false);
        document.addEventListener('gesturestart', function(event) {
            event.preventDefault();
        });
    }
  </script>
  1. 监听覆盖屏幕的元素的touch事件,阻止默认行为。
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <style>
    #container {
      width: 100vw;
      height: 100vh;
      background-color: #4caf50;
    }
  </style>
</head>
<body>
  <div id="container">ABC</div>
  <script>
    const container = document.getElementById("container");
    container.addEventListener("touchstart", (event) => {
      if (event.touches.length > 1) {
        event.preventDefault();
      }
    })
    container.addEventListener("touchmove", (event) => {
      if (event.touches.length > 1) {
        event.preventDefault();
      }
    })
  </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mobileHack 这里收集了许多移动端上遇到的各种坑与相对解决方案 工具类网站 HTML5 与 CSS3 技术...
    安石0阅读 1,935评论 0 5
  • 1、先来看淘宝无线wiki要求在页面中添加的meta标签。 第一个meta标签表示:强制让文档的宽度与设备的宽度保...
    小_花花哟阅读 375评论 0 0
  • 控制显示区域各种属性: width - viewport的宽度 heig...
    65_刘璐阅读 324评论 0 0
  • 以前听到前辈们说移动端尽量不要使用click,click会比较迟钝,能用touchstart还是用touchsta...
    极乐君阅读 723评论 0 2
  • 1、安卓浏览器看背景图片,有些设备会模糊。用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研...
    qhaobaba阅读 3,021评论 0 4