单击页面任何地方关闭隐藏层

单击页面任何地方关闭隐藏层的一种新的实现方法,有需要得朋友可以参考对比一下,可以自己在此基础上扩展相关功能。(也可以在框架页中绑定单击事件,自己加一下即可。)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>单击页面任何地方关闭隐藏层</title>
<script type="text/javascript">

var document_click_hide_object=function(a,b){
    var a=document.getElementById(a);
    var b=document.getElementById(b);
    //单击a时显示b
    a.addEventListener("click",function(){
        b.style.left=a.offsetLeft + "px";
        b.style.top=a.offsetTop + a.clientHeight + "px";
        b.style.display="block";
        b.setAttribute("data-close","false");
        window.setTimeout(function() {
            b.setAttribute("data-close","true");
        }, 100);
    });
    b.addEventListener("click",function(){
        b.setAttribute("data-close","false");
        window.setTimeout(function() {
            b.setAttribute("data-close","true");
        }, 100);
    });
    document.addEventListener("click",function(){
        window.setTimeout(function() {
            if (b.getAttribute("data-close") == "true") {
                b.setAttribute("data-close","false");
                b.style.display="none";
            }
        }, 50);
    });
}

window.onload=function(){
    document_click_hide_object("a","b");
}
</script>
<style type="text/css">
#a {
    padding: 3px 10px;
    border: 1px solid #CCC;
    position: absolute;
    top: 50px;
    left: 100px;
    width: 50px;
    text-align: center;
    height: 30px;
    line-height: 30px;
    cursor: pointer;
}
#b {
    padding: 3px 10px;
    border: 1px solid #CCC;
    position: absolute;
    padding:20px;
    display: none;
    background:#FFF;
}
</style>
</head>

<body>
<div id="a">显示</div>
<div id="b">我显示后你点击我我不会自动关闭,点击页面任何地方才会关闭噢,快试试看噢!</div>
</body>
</html>
时间: 2024-10-27 05:14:06

单击页面任何地方关闭隐藏层的相关文章

根据复选框checkbox的选中状态来打开或关闭隐藏层

HTML:  <input type="checkbox" id="check-expert"> <div id="expert" style="display:none">隐藏层</div> JS: $(function () { if ($("#check-expert").attr("checked") == "checked"

点击页面其他地方关闭弹出层

html: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> #div { background: red; width: 100px; height: 100px; display: none; } </style> <script type="text/javascrip

关于自定义select打开后点击页面其他地方关闭的一些总结

1.第一版,只有点击打开按钮才能关闭 这个就没什么好说的,点击按钮,做对应操作,贼简单,不过体验也同样贼差. 点开选择框之后只有点击打开选择框的按钮才能关闭. 2.第二版,在选择框后,其他元素之前加上一个蒙版 蒙版加上之后,可以是透明的,也可以是半透明的,不过一个选择框加个半透明的蒙版有点不伦不类. 这样基本的点击其他位置关闭选择框的功能是实现了,但是有个致命的缺点,就是你点击其他地方是没有效果的. 因为你第一次点击的是蒙版,所以其他地方并没有背点击,体验感很差. 3.第三版,加全局点击事件 这

实现点击页面其他地方,隐藏div(vue)

方法一: 通过监听事件 document.addEventListener('click',function(e){ if(e.target.className!='usermessage'){ that.userClick=false; } }) 方法二(比较好): 给最外层的div加个点击事件 @click="userClick=false" 给点击的元素上面加上:@click.stop="userClick=!userClick" 原文地址:https://w

点击按钮显示隐藏层 和 切换按钮同时显示多个隐藏层

按钮点击显示隐藏层(再次点击按钮则隐藏层关闭): HTML部分: <button type="button" id="show" onclick="showHidden()">点我显示隐藏层</button> <div id="hidden" style="display:none">我是隐藏层.</div> JS部分: <script type='te

jquery css div (弹出)显示隐藏层

css代码段 .crm_tc_bg { width: 100%; height: 100%; position: fixed; display: block; top: 0; left: 0; background: #000; filter: apha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; z-index: 1000; } .crm_tc_box { width: 300px; min-height: 200px; max-height:

jquery实现的点击页面其他地方隐藏显示的元素

jquery实现的点击页面其他地方隐藏显示的元素:在实际应用中,可能有这样的效果,那就是有这样一个弹出层,点击层本身的时候,这个层不会隐藏,而点击除去层之外的页面其他地方则会将这个层隐藏,下面就通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="

jQuery点击自身以外地方关闭弹出层

$(function(){ $(document).bind("click", function (e) { if($(e.target).closest("#txt").length>0){ $("#tip").show(); }else{ $("#tip").hide(); } }); }); closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身.如果不匹配则向上查找父元素,一层一层往上,直到找到匹配

jquery实现点击页面其他地方隐藏指定元素

jquery实现点击页面其他地方隐藏指定元素:在很多效果中,都有这样的功能,当点击页面的其他地方时,能够隐藏一个指定的元素,例如在模拟实现的select下拉菜单效果中,当下拉菜单出现的时候,我们往往希望当点击页面其他地方的时候,能够隐藏下拉条,下面就通过一个实例单独介绍一下如何实现此功能.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=