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

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

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

  1. <html>
  2. <head>
  3. <title>test</title>
  4. <meta http-equiv=content-type content="text/html; charset=gb2312">
  5. <style>
  6. .titlediv{background-color:#eee;color:white;font-weight:bold;padding:10px;cursor:pointer }
  7. .contentdiv{border:3px solid blue;height:100px;padding:10px; }
  8. </style>
  9. <script type="text/javascript">
  10. function toggle(divid){
  11. var odiv = document.getElementById(divid);
  12. odiv.style.display=(odiv.style.display=="none")?"block":"none";
  13. }
  14. function showhide(divid){
  15. var odiv = document.getElementById(divid);
  16. odiv.style.visibility=(odiv.style.visibility=="visible")?"hidden":"visible";
  17. }
  18. </script>
  19. </head>
  20. <body >
  21. <div class="titlediv" onclick="toggle('divContetn1')">click here</div>
  22. <div class="contentdiv" id="divContetn1">this is some content to show and hide
  23. </div>
  24. <p> </p>
  25. <div class="titlediv" onclick="toggle('divContetn2')">click here</div>
  26. <div class="contentdiv" id="divContetn2">this is some content to show and hide
  27. </div>
  28. <p> </p>
  29. <div class="titlediv" onclick="showhide('divContetn3')">click here</div>
  30. <div class="contentdiv" id="divContetn3">this is some content to show and hide
  31. </div>
  32. <p> </p>
  33. <div class="titlediv" onclick="showhide('divContetn4')">click here</div>
  34. <div class="contentdiv" id="divContetn4">this is some content to show and hide
  35. </div>
  36. </body>
  37. </html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值