div的显示和隐藏

不占位

1.隐藏,div对象.style.display = “none”;
2.显示,div对象.style.display=”block”;
示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            div.divClass1{
                width:200px;
                height:200px;
                background-color: #9ACD32;
            }

            div.divClass2{
                width:200px;
                height:200px;
                background-color: yellow;
                display:none;
            }
        </style>
        <script type="text/javascript">
            function getStyleObject (domObject) {
                var styleObject = null;

                if(domObject.currentStyle){ //IE
                    styleObject = domObject.currentStyle;
                }else {
                    styleObject = window.getComputedStyle(domObject,null);
                }
                return styleObject;
            }

            function test () {
                //让div2显示
                var div2 = document.getElementById("div2");

                var styleObject = getStyleObject(div2);
                var btn1 = document.getElementById("btn1");
                if(styleObject.display=="none"){//div2是隐藏的
                    //显示
                    div2.style.display="block";
                    //让按钮的文字变成隐藏
                    btn1.value="隐藏";
                }else{
                    //隐藏
                    div2.style.display="none";
                    btn1.value="显示";
                }


                //隐藏

            }
        </script>
    </head>
    <body>
        <input type="button" name="btn1" id="btn1" value="显示" onclick="test();"/>
        <div class="divClass1">
            默认显示的内容
        </div>
        <div id="div2" class="divClass2">
            不太常用的内容
        </div>
        其他内容
    </body>
</html>

点击时,第一次不能正常显示,需要点第二次,为什么?原因:内嵌样式设置了div的display:none,在js代码中无法获得内嵌样式display,期望得到none,却得到“”,所以出现问题。
解决:写一个获得display的函数获得内嵌央视的display对象,打印出none即获得。

占位

1.隐藏,div对象.style.visibility = “hidden”;
2.显示,div对象.style.visibility = “visible”;

示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            div.divClass1{
                width:200px;
                height:200px;
                background-color: #9ACD32;
            }

            div.divClass2{
                width:200px;
                height:200px;
                background-color: yellow;
                visibility: hidden;
            }
        </style>
        <script type="text/javascript">
            function getStyleObject (domObject) {
                var styleObject = null;

                if(domObject.currentStyle){ //IE
                    styleObject = domObject.currentStyle;
                }else {
                    styleObject = window.getComputedStyle(domObject,null);
                }
                return styleObject;
            }

            function test () {
                //让div2显示
                var div2 = document.getElementById("div2");

                var styleObject = getStyleObject(div2);
                var btn1 = document.getElementById("btn1");
                if(styleObject.visibility=="hidden"){//div2是隐藏的
                    //显示
                    div2.style.visibility="visible";
                    //让按钮的文字变成隐藏
                    btn1.value="隐藏";
                }else{
                    //隐藏
                    div2.style.visibility="hidden";
                    btn1.value="显示";
                }


                //隐藏

            }
        </script>
    </head>
    <body>
        <input type="button" name="btn1" id="btn1" value="显示" onclick="test();"/>
        <div class="divClass1">
            默认显示的内容
        </div>
        <div id="div2" class="divClass2">
            不太常用的内容
        </div>
        其他内容
    </body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值