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.<