分享

JS中style.display和style.visibility的区别

 昵称27831725 2017-08-24
         在JS中可以通过设置style.display或者style.visibility属性来控制元素是否显示,在style.display=block和style.visibility=visible的时候,元素被显示,在style.display=none和style.visibility=hidden的时候,元素被隐藏。它们之间最大的区别是通过style.display=none隐藏的时候,元素不占据原来的位置,从文档流中脱离,后续的元素填补其位置。通过style.visibility=hidden隐藏的时候,元素仍然占据原来的位置,只是被隐藏。

 

下面的例子说明了这种区别:在这个例子中,pContent1和pContent2隐藏的时候用的是style.display=none,这时候,后面的p会向上移动,占据已经隐藏的p的空间。pContent3和pContent4用的是style.visibility=hidden来隐藏,但是其隐藏后仍然占据原来的空间。

 

[html] 

<html>  

<head>  

<title>test</title>  

<meta http-equiv=content-type content="text/html; charset=gb2312">  

<style>  

.titlep{background-color:#eee;color:white;font-weight:bold;padding:10px;cursor:pointer }  

.contentp{border:3px solid blue;height:100px;padding:10px; }  

</style>  

<script type="text/javascript">    

function toggle(pid){  

    var op = document.getElementById(pid);  

    op.style.display=(op.style.display=="none")?"block":"none";  

}  

  

function showhide(pid){  

    var op = document.getElementById(pid);  

    op.style.visibility=(op.style.visibility=="visible")?"hidden":"visible";  

}  

</script>      

</head>    

<body >    

    <p class="titlep" onclick="toggle('pContetn1')">click here</p>   

    <p class="contentp" id="pContetn1">this is some content to show and hide  

    </p>  

    <p> </p>  

    <p class="titlep" onclick="toggle('pContetn2')">click here</p>   

    <p class="contentp" id="pContetn2">this is some content to show and hide  

    </p>   

    <p> </p>  

    <p class="titlep" onclick="showhide('pContetn3')">click here</p>   

    <p class="contentp" id="pContetn3">this is some content to show and hide  

    </p>  

    <p> </p>  

    <p class="titlep" onclick="showhide('pContetn4')">click here</p>   

    <p class="contentp" id="pContetn4">this is some content to show and hide  

    </p>          

</body>    

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约