Vue 弹出层时 禁止页面滑动

页面中加顶部蒙层,发现滑动时底部页面内容会正常滚动

一、【移动端】直接在蒙层所在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();
		}
	}
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值