gpt4 book ai didi

Javascript IE 与 Firefox style.visibility 实现

转载 作者:行者123 更新时间:2023-11-28 21:19:30 28 4
gpt4 key购买 nike

我确信这是我的一个糟糕的疏忽,但我希望有人能够解释以适用于的方式使用 .style.visibility/.style.display 的正确方法IE 和 Firefox。

基本上,我有一个自定义选项卡控件。第一个选项卡中有一个自定义 MP3 播放器控件。当用户单击不同的选项卡时,音乐需要继续播放,即使它不再可见。

在 IE 中,这正如广告中所宣传的那样,但在 Firefox 中,当用户单击另一个选项卡时,音乐就会停止,并且控件将重置为其初始化状态。

//<summary>
// Display or hide relevent div areas.
//</summary>
//<param name="divId">The id of the viewable div</param>
function toggleDiv(divId) {
var elems = new Array("0", "1", "2", "3");
var hdnView = document.getElementById('<%=hdnCurrentDiv.ClientID %>');

for (div in elems) {
var elem = document.getElementById(div);

if (div == divId) {
elem.style.display = 'block';
elem.style.visibility = 'visible';
hdnView.value = divId;
//highlightSelection(elem);
}
else {
elem.style.display = 'none';
elem.style.visibility = 'hidden';
}
}
}

如何让 Firefox 表现得像 IE 一样,当用户单击选项卡时,之前选择的选项卡上的播放器会继续播放,只是使该 div 不可见?

最佳答案

您可以将每个选项卡的背景设置为不透明颜色,而不是显示/隐藏,将它们绝对放置在彼此之上,并更改它们的 z-index 以将单击的选项卡带到堆栈顶部。

这样您就不会遇到元素被销毁/重置的问题。而且您不必每次单击不同的选项卡时都更改位置。您所做的就是更改 z-index...

简单示例:

<html>
<head>
<style>
ul
{
list-style: none;
}
li
{
display: inline;
}
#Tab1, #Tab2
{
background-color: #fff;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
</style>
<script>
function toggleTab( tabID )
{
for( var i = 1; i<= 2; i++ )
{
var id = "Tab" + i;
if( id != tabID )
{
document.getElementById(id).style.zIndex = "1";
}
}

document.getElementById(tabID).style.zIndex = "2";
}
</script>
</head>
<body>
<ul>
<li>
<a href="javascript:toggleTab('Tab1');">Link 1</a>
</li>
<li>
<a href="javascript:toggleTab('Tab2');">Link 2</a>
</li>
</ul>
<div style="position: relative;" id="allTabs">
<div id="Tab1">
Tab 1...
</div>
<div id="Tab2">
Tab 2...
</div>
</div>
</body>
</html>

关于Javascript IE 与 Firefox style.visibility 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com