弹出层禁止页面滚动

在做移动端遮罩层时,发现页面可以上下滚动,踩了N个坑之后,总算是解决了这个问题。
禁止滚动
给body设置宽高都是100%,固定在左上角,溢出隐藏的样式。

var body = document.body;
body.style.cssText = 'width: 100%; height: 100%; position: fixed; top: 0; left: 0; overflow: hidden;';

但是,这样会有BUG:每次执行这个,都会把页面拉到最顶部,很明显这样是不行的。解决方案如下:

var body = document.body;
var top = body.scrollTop;
body.style.cssText = 'width: 100%; height: 100%; position: fixed; top: -' + top + 'px; left: 0; overflow: hidden;';

关闭遮罩层时:

body.removeAttribute('style');
body.scrollTop = top;


原文地址:http://blog.xuxiangbo.com/im-40.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值