js实现蒙版效果全屏遮罩 弹窗

请添加图片描述

    <style>
        body html{
            width:100%;
        }
        body{
            height:3000px;
        }
        *{
            margin:0;
            padding:0;
        }
        #panel{
            width:100%;
            height:100%;
            background-color:#000;
            opacity:0.4;
            /*解决IE兼容透明度*/
            filter: alpha(opacity:40);
            position:absolute;
            left:0;
            top:0;
            display:none;
        }
        #login{
            width:300px;
            height:300px;
            background: skyblue;
            -webkit-border-radius: 5px;
            -moz-border-radius: 5px;
            border-radius: 5px;
            position: fixed;
            left:50%;
            top:50%;
            margin: -150px 0 0 -150px;
            display:none;
        }
    </style>
<body>
    <button id="btn">立即登录</button>
    <div id="panel"></div>
    <div id="login"></div>
    <script>
        window.onload=function () {
            //1.监听按钮的点击
            document.querySelector("#btn").onclick=function (e) {
                //点击登录按钮阻止冒泡
                if(e&&e.stopPropagation){
                    e.stopPropagation();
                }else{
                    window.event.cancelBubble=true;
                }
                //1.1显示面板和蒙版
                document.querySelector("#panel").style.display="block";
                document.querySelector("#login").style.display="block";
                //当出现蒙版时,去除body的滚动条
                document.body.style.overflow="hidden";

            };
            //2.点击文档
            document.onclick=function (event) {         
                var e=event||window.event;
                //2.1获取点击的标签
                var targetId=e.target?e.target.id:e.srcElement.id;
                if(targetId!=='login'){
                    document.querySelector("#panel").style.display="none";
                    document.querySelector("#login").style.display="none";
                    //当出现蒙版时,去除body的滚动条
                    document.body.style.overflow="visible";
                }
            }
        }
    </script>
</body>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路光.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值