h5阻止ios侧滑后退页面的问题

背景:在做一个手写签名的需求时,发现在手机端使用签名时会触发页面后退问题。
解决办法:通过监听触屏事件touchmove,使用e.preventDefault()阻止默认事件的发生。

在index.html添加以下代码

  <style>
    html {
      touch-action: none;
      touch-action: pan-y;
    }

  </style>
  <script>
    document.addEventListener("touchmove", function (e) {
      //可以在此对需要侧滑的页面开放权限,注释掉 e.preventDefault(),或者return
        e.preventDefault()
    }, {
      passive: false
    });


    var startX, startY;
    document.addEventListener("touchstart", function (e) {
      startX = e.targetTouches[0].pageX;
      startY = e.targetTouches[0].pageY;
    });

    document.addEventListener("touchmove", function (e) {
      var moveX = e.targetTouches[0].pageX;
      var moveY = e.targetTouches[0].pageY;

      if (Math.abs(moveX - startX) > Math.abs(moveY - startY)) {
          e.preventDefault()
      }
    }, {
      passive: false
    });
  </script>

引用:https://blog.csdn.net/weixin_49577940/article/details/118651521

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容