移动端禁止触摸滚动

问题

当移动端页面显示弹窗时,滑动屏幕,弹窗下方的页面竟然可以上下滑动(虽然点击不到弹窗下方的内容,但仍然看不习惯~~)

解决

查阅资料后,给整个弹窗设置禁止触摸滚动,代码如下:
(由于页面中存在多个弹窗,所以获取了所有弹窗,再给每个弹窗设置禁止滚动)

var masks = document.getElementsByClassName("mask");
for (var i = 0; i < masks.length; i++) {
  masks[i].addEventListener("touchmove", function (e) {
    e.preventDefault();
  }, { passive: false })
}

注意

当选取一个元素时,如果是document.getElementsByClassName,则获取到的是类数组对象,需要选取后再添加监听事件。

var mask = document.getElementsByClassName("mask")[0];  //注意[0]
mask.addEventListener("touchmove", function (e) {
  e.preventDefault();
}, { passive: false })
posted @ 2020-11-04 08:36  ZerlinM  阅读(310)  评论(0编辑  收藏  举报