点击空白地方关闭弹窗

<div id="mask">
        <div id="content">
            <button id="btn">
                点我关闭
            </button>
        </div>
    </div>
    <script>
        const mask = document.getElementById('mask');
        const content = document.getElementById('content');
        const btn = document.getElementById('btn');

        btn.onclick = function() {
            content.style.display = 'none';
        }
        
      // 在蒙层上加上监听事件,若是当前的currenttarget 和target相等,则是点击在蒙层上
        mask.addEventListener('click',function(e) {
            if(e.currentTarget === e.target){
                content.style.display = 'none';
            }
        },false)
    </script>

这个点击空白区域关闭弹窗的原理主要是: 判断点击的目标是否在除自身以外的蒙层上;但如何能判断这个呢?事件里有两个属性,一个是target,一个是currentTarget,二者区别主要是:target是作用在目标元素上,而currentTarget则是作用在监听元素上,所以,在蒙层上设一个监听事件,当鼠标点击在蒙层上时,就可以关闭弹窗;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值