页面中加顶部蒙层,发现滑动时底部页面内容会正常滚动
一、【移动端】直接在蒙层所在div上加@touchmove.prevent就好了
<div class="masktop" @touchmove.prevent></div>
二、【PC端】显示弹层调用stop(),否则调用move()
stop(){//滑动限制
var mo=function(e){e.preventDefault();};
document.body.style.overflow='hidden';
document.addEventListener("touchmove",mo,false);//禁止页面滑动
},
move(){//取消滑动限制
var mo=function(e){e.preventDefault();};
document.body.style.overflow='';//出现滚动条
document.removeEventListener("touchmove",mo,false);
}
注:在PC端控制台若有以下报错
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive.
See https://www.chromestatus.com/features/5093566007214080
解决方法如下:
var mo=function(e){e.preventDefault();};
//上面一段改成下面这段
var mo=function(event) {
if (event.cancelable) {// 判断默认行为是否可以被禁用
if (!event.defaultPrevented) {// 判断默认行为是否已经被禁用
//event.preventDefault();
}
}
};