移动端的弹窗滚动禁止body滚动

心不动则不痛 提交于 2021-02-20 08:41:23

本文转载于:专业的前端网站移动端的弹窗滚动禁止body滚动

前言

最近一个需求是弹窗展示列表,显然是需要一个滚动条的,而滚动到底部就会穿透到body滚动,而阻止默认行为是不行的,这样两个都滑动不了
所以我在点击出现弹窗的时候在body加了以下css让它没有滚动效果

$("body").css({
         overflow:"hidden",
         height:"100%"
       });

但是这样又出来一个问题,会在弹窗出来的时候body直接回到顶部,显然不是我愿意要的,所以这时候就需要让body显示在之前的高度,所以我们可以获取点击时body被卷去的高度bodyScroll=\(("body").scrollTop();并且给body定位,就可以实现我们所需要的了 ```JavaScript var bodyScroll=\)("body").scrollTop();
$("body").css({
overflow:"hidden",
position:'fixed',
top:-bodyScroll
});
关闭弹窗的时候在恢复之前的就可以了,并且滚动到原先的位置JavaScript
$("body").css({
'overflow':'auto',
'position': 'static',
'top': 'auto'
});
$("body").scrollTop(bodyScroll);
```
在安卓和苹果经过测试没有出什么bug,希望也可以解决你们的问题。


更多专业前端知识,请上 【猿2048】www.mk2048.com
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!