zoukankan      html  css  js  c++  java
  • JS实现点击空白处弹窗消失

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>点击空白处弹窗消失</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            #app{
                width: 300px;
                margin: 40px auto;
            }
            .input-text{
                width: 100%;
                box-sizing: border-box;
            }
            .content{
                height: 300px;
                border: 1px solid black;
            }
            .hide{
                display: none;
            }
        </style>
    </head>
    <body>
        
        <div id="app">
            <input type="text" class="input-text"/>
            <div class="content hide">
               <div>
                    <button type="button">确定</button>
               </div>
            </div>    
        </div>
        
        <script>
            //事件委托就是利用事件冒泡特性,给父元素绑定事件
            //parent.contains(child) 判断是否是某个节点的子节点
            //e.target 触发事件的源节点
            document.onclick = function(e){
                e = window.event || e;
                let parentApp = document.getElementById('app');
                if(parentApp.contains(e.target)){
                    console.log("app元素内,移除.hide");
                    document.querySelectorAll('.content')[0].classList.remove("hide")
                }else{
                    console.log("app元素外,添加.hide");
                    document.querySelectorAll('.content')[0].classList.add("hide")
                } 
            }
            //自定义contains方法
            var cusContains = function(parNode,childNode){
                //子节点不能是html或body标签
                while (childNode && !/HTML|BODY/.test(childNode.nodeName)){
                    if (childNode == parNode){
                        return true;
                    }
                    childNode = childNode.parentNode;
                }
                return false;
            }
        </script>
    </body>
    </html>
  • 相关阅读:
    Tiny-Core-Linux 9.x:安装oracle【11g|】:艰难的旅程,不过,最终成功了!:mini-install
    调研高层次人才落户的补贴标准
    充当好基层治理的“绣花针”
    对互联网广告监管的几点实践与思考
    合抱之木,生于毫末;九层之台
    JVM
    Apex Salesforce
    maven 地址
    JVM
    使用jmap和MAT进行堆内存溢出分析
  • 原文地址:https://www.cnblogs.com/littleboyck/p/12685894.html
Copyright © 2011-2022 走看看