移动端弹窗如何阻止body滚动

2025-05-25 21:14:27

1、弹出层出现时给body添加一个css样式:height:100%;overflow:hidden;弹出层消失再去掉这个类。测试结果:chrome手机模拟器还真可以,but到了我的安卓手机上。

移动端弹窗如何阻止body滚动

2、之后又看到有人提到,是要html也设置同样的样式才会有效果,所以同样给html添加了这个类,弹出层消失时去掉这个类。

移动端弹窗如何阻止body滚动

4、弹出层出现时给body添加样式position:fixed,并算出当时页面的scrollTop滚动值,给body一个负的top值来保证body不会回到顶部,弹出层消失时恢复。

移动端弹窗如何阻止body滚动

5、无意中发现定位层之间好像是不会传递事件的,将弹窗之外的元素包在一个div里,给这个div设置定位样式,给宽高是充满屏幕的,设置overflow:auto;这样这个div和弹出层就是两个定位层,滑动弹出层时不会传递到div上的。

移动端弹窗如何阻止body滚动
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢