问题描述:在页面打开弹窗,弹出遮罩层,在滑动页面时会导致弹窗底部的页面跟着一起滚动
解决方案
一、适用于弹窗文案较少且不需要滚动的场景,如图:
// 方法:直接在遮罩层(弹窗)上添加@touchmove.prevent(这里是vue中),它的作用就是当你全屏的遮罩层(弹窗)时,就会禁止滑动,原理就是因为该弹出层都禁止滑动了,自然而然就不存在滑动穿透的问题了。
<div class="modal" @touchmove.prevent></div>

二、适用于弹窗文案多且支持滚动的场景,如图:
// 解决方法:
// 打开弹窗时设置以下样式
document.body.style.position = "fixed";
document.body.style.overflow = "hidden";
document.querySelector("#app").style.overflow = "hidden";
// 关闭弹窗时设置以下样式
document.body.style.position = "relative";
document.body.style.overflow = "scroll";
document.querySelector("#app").style.overflow = "scroll";

本文主要探讨了在H5页面中遇到的弹窗滚动穿透问题,提出了解决方案。对于弹窗文案较少且不需要滚动的情况,以及弹窗内容较多且支持内部滚动的情况,分别给出了相应的处理方法。
2846

被折叠的 条评论
为什么被折叠?



