我是靠谱客的博主 感动小兔子,最近开发中收集的这篇文章主要介绍JavaScript 模态框 (阻止事件冒泡,event.target),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


demo.html:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,html {
            height: 100%;
            padding: 0;
            margin: 0;
        }
        .mask {
            width: 100%;
            height: 100%;
            position: fixed;
            top: 0;
            left: 0;
            display: none;
            background: rgba(0, 0, 0, 0.6);
        }
        .login {
            width: 400px;
            height: 300px;
            cursor: pointer;
            background-color: #fff;
            margin: 200px auto;
        }
    </style>
</head>
<body>
    <div class="mask">
        <div class="login" id="login"></div>
    </div>
    <a href="#">注册</a>
    <a href="#">登陆</a>
    <script>
        //需求:点击登录按钮,显示模态框。点击出去login以外的所有盒子隐藏模态框。
        //步骤:
        //1.给登录绑定事件
        //2.给document绑定事件,因为可以冒泡,只要判断,点击的不是login,那么隐藏模态框


        //1.给登录绑定事件
        var mask = document.getElementsByClassName("mask")[0];
        var a = document.getElementsByTagName("a")[1];

        a.onclick = function (event) {
            //显示模态框
            mask.style.display = "block";

            //阻止事件冒泡
            event = event || window.event;
            if(event && event.stopPropagation){
                event.stopPropagation();
            }else{
                event.cancelBubble = true;
            }

        }

        //2.给document绑定事件,因为可以冒泡,只要判断,点击的不是login,那么隐藏模态框
        document.onclick = function (event) {
            //获取点击按钮后传递过来的值。
            event = event || window.event;

            //获取触发事件的最子集元素     兼容写法
            //var aaa = event.target || event.srcElement;
            var aaa = event.target?event.target:event.srcElement; //获取触发事件的最子集元素   兼容写法

            console.log(event.target);

            //判断目标值的ID是否等于login,如果等于不隐藏盒子,否则隐藏盒子。
            if(aaa.id !== "login"){
                mask.style.display = "none";
            }
        }

    </script>

</body>
</html>


最后

以上就是感动小兔子为你收集整理的JavaScript 模态框 (阻止事件冒泡,event.target)的全部内容,希望文章能够帮你解决JavaScript 模态框 (阻止事件冒泡,event.target)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部