css h5 端弹窗时禁止底部页面滚动

本文介绍了三种在H5移动端实现弹窗时禁止底部页面滚动的方法,包括使用CSS遮罩层属性、阻止触摸事件默认行为以及通过CSS定位来实现。每种方法都有其优缺点,如影响弹窗内滚动条、可能引发控制台警告等。最后提供了一种相对完善的解决方案,通过记录和恢复元素位置来达到预期效果。
摘要由CSDN通过智能技术生成

h5 端页面在弹窗时禁止底部页面滚动,在实现时,我尝试过几种方法。

方法一: @touchmove.stop.prevent

在遮罩层中添加 @touchmove.stop.prevent 可以实现禁止页面滚动,如下:

<div class="dialog-mask" v-if="isDlgShow" @click="closeHandle(2)" @touchmove.stop.prevent>
</div>

缺点

但是这种方法有个问题:弹窗里面内容有滚动条的也会无法滚动。

方法二:prevent touchmove

通过prevent touchmove 阻止触摸滑动事件touchmove的默认行为,如下:

// 弹窗的事件
openHandle () {
   
	  // 在弹窗打开时直接阻止目标元素的滑动事件的默认行为
      document.body.addEventListener('touchmove', this.scrollSetup, {
    passive: false })
      // 打开弹窗
      this.<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值