0

回发后,我似乎无法让 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>
4

1 回答 1

1

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

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

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

display: none 或 block/inline/inline-block => 隐藏元素并移除它占用的空间 visibility: hidden / visible => 隐藏元素并使占用的空间空白

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

除此之外,你的脚本标签还说"text/javascript",你真的想在哪里执行服务器端代码,所以我添加了一个runat="server"-attribute

于 2013-08-05T17:51:57.830 回答