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>
  • 相关阅读:
    石头汤
    win8激活 DNS名称不存在
    IE系列hack
    CSS缩写
    MSDN资源
    项目管理之软件文档知多少
    jqModal
    Microsoft Security Essentials 不升级方法
    XP没有声音服务解决方案
    office2003安全模式启动,默认模板问题/打开word就显示“无法装载这个对象”
  • 原文地址:https://www.cnblogs.com/littleboyck/p/12685894.html
Copyright © 2011-2022 走看看