弹出遮罩层,禁止蒙层底部页面跟随滚动

弹出遮罩层(遮罩层必须根据浏览器视窗固定定位,poistion:fixed)

position:absolue;与poistion:fixed区别:没有滚动条的情况下没有区别

        1.position:absolue;相对元素的宽高进行定位

        2.poistion:fixed;相对于当前浏览器视窗或可视窗口的定位

        3.一般fixed用在遮盖层和固定在页面某个位置,如固定在顶端的菜单栏,又如弹出提示框居中显示

遮罩层css:{

        width:100%;

        height:100%;

        poistion:fixed;

        top:0;

        left:0;

        z-index:9999;

}

//    封装禁止页面滚动方法(该方法兼容PC端和移动端)

var top1 = 0

function stopBodyScroll (isFixed) {

        var bodyEl = document.body
        if (isFixed) {
            top1 = window.scrollY
            bodyEl.style.position = 'fixed'
            bodyEl.style.top = -top1 + 'px'
        } else {
            bodyEl.style.position = ''
            bodyEl.style.top = ''
            window.scrollTo(0, top1) // 回到原先的top
        }

}

思路:将其固定在视窗(即position: fixed),这样它就无法滚动了,当蒙层关闭时再释放。还有一些细节要考虑,将页面固定视             窗后,内容会回到最顶端,这里我们需要记录一下当前滚动条高度,弹出和释放时同步top值。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值