我似乎无法让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>
答案 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"
- 属性