如何在回发后保持DIV可见

时间:2013-08-05 17:46:11

标签: javascript css

我似乎无法让div在发回后保持可见。能见度部分有什么问题吗?

function toggleOverlay(){
        var overlay = document.getElementById('overlay');
        var specialBox = document.getElementById('specialBox');
        overlay.style.opacity = .8;
        if(overlay.style.display == "block"){
            overlay.style.display = "none";
            specialBox.style.display = "none";
        } else {
            overlay.style.display = "block";
            specialBox.style.display = "block";
        }
    }
    </script>
    </head>
    <body>
    <!-- Start Overlay -->
    <div id="overlay"></div>
    <!-- End Overlay -->
    <!-- Start Special Centered Box -->
    <div id="specialBox"  runat="server">
    <script type="text/javascript"> if(Page.IsPostBack)

                {
                     specialBox.Style["visibility"] = "visible";
                }</script>

1 个答案:

答案 0 :(得分:1)

您需要在服务器端代码中设置与客户端代码中相同的属性。

 <script runat="server"> 
    if(Page.IsPostBack)
    {
        specialBox.Style["display"] = "block";
    }
</script>

在CSS中有两种隐藏/显示元素的方法:

display:none或block / inline / inline-block =&gt;隐藏元素并删除它正在占用的空间 visibility:hidden / visible =&gt;隐藏元素并将占用的空间留空

如果其中任何一个设置为隐藏值,则该元素将不可见

除此之外,您的脚本标记还显示"text/javascript",您真正想要执行服务器端代码,因此我添加了runat="server" - 属性