CSS蒙版弹窗 底部内容不滚动

写在前面

  1. 页面弹窗组成:蒙版 + 弹窗
  2. 主要使用的 CSS 属性:positionz-Index

踩坑记录

弹窗出现之后,要求底部内容不滚动,一般可以通过设置 bodyoverflow: hidden; 实现,但是在不同手机系统或一些浏览器(如UC)中,该方法无效;所以最后采用 设置 bodyposition: fixed; 的方法。

代码

HTML部分
<div class="popup" id="popup">
        <div class="cover"></div>
        <div class="modal"> 
            <div class="modal-con">
            	<div class="btn-close" id="btnClose">关闭</div>  
                <div class="modal-cont">
                    <h2>弹窗的标题</h2>
                    <p>弹窗的内容弹窗的内容弹窗的内容弹窗的内容弹窗的内容</p>    
                </div>
            </div>   
        </div>
    </div>
CSS部分
/* 蒙版 */
.cover {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: #000;
    width: 100%;  
    height: 100%;
	/* 透明度 */
    opacity:0.8; 
    filter:alpha(opacity=80);  
    z-Index:999;	// 比 modal 低
    overflow: hidden;
}

/* 弹窗 */
.modal {
    width: 70%;
    position: fixed;
    top: 20%;
    left: 0;
    right: 0;
    margin: 0 auto;
    z-Index:1000;	// 比 cover 高
}

.btn-close {
    width: 3.5rem;
    height: 3.5rem;
    position: absolute;
    right: 0;
}

.modal-con {
    width: 100%;
    height: 26.4375rem;
    margin: 5.375rem auto 0;
    background: url("../images/bg-popup.png") no-repeat;
    background-size: 100% 100%;
    overflow: hidden;
}

.modal-cont {
    width: 84%;
    height: 22.25rem;
    margin: 2.125rem auto;
    overflow: hidden;
}

.modal-cont h2 {
    margin-bottom: 4rem;
    text-align: center;
    font-size: 2.25rem;
    line-height: 2.25rem;
    color: #FC4F35;
}

.modal-cont p {
    margin-bottom: 2rem;
    font-size: 1.75rem;
    line-height: 2.8125rem;
    color: #fff;
}

JS部分
<script>
    ;(function(document, window){
        // 跳出弹窗
        var oModal = document.getElementById('popup')
        oModal.style.display = 'block'
        document.body.style.position = 'fixed' // 设置底部 body不滚动

        // 关闭弹窗
        document.getElementById('btnClose').addEventListener('click', function() {
            oModal.style.display = 'none'
            document.body.style.position = 'static' // 恢复底部 body可以滚动
        })   
    })(document, window)
</script>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值