javascript - 向显示和隐藏 div 的 javascript 添加淡入淡出效果?

标签 javascript jquery html css

我目前正在使用此 javascript 来显示一个 div 并隐藏所有其他的。它很好用。但是,我想在 div 显示和另一个消失时添加淡入淡出效果。

var divState = {};
function showhide(id) {
if (document.getElementById) {
    var divid = document.getElementById(id);
    divState[id] = (divState[id]) ? false : true;
    //close others
    for (var div in divState) {
        if (divState[div] && div != id) {
            document.getElementById(div).style.display = 'none';
            divState[div] = false;
        }
    }
    divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
}
}

这是运行中的 jsfiddle。 http://jsfiddle.net/8e8sH/2/

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

我会这样做 jsFiddle example

HTML

<a href="#" data-box="box1">Box 1</a> 
<a href="#" data-box="box2">Box 2</a> 
<a href="#" data-box="box3">Box 3</a> 
<a href="#" data-box="box4">Box 4</a>

<div id="hiddendivs">
    <div id="box1" class="box_1">Box 1 Test</div>
    <div id="box2" class="box_2">Box 2 Test</div>
    <div id="box3" class="box_3">Box 3 Test</div>
    <div id="box4" class="box_4">Box 4 Test</div>
</div>

CSS

#hiddendivs > div {
    display:none;
    position:absolute;
}
#hiddendivs {
    position:relative;
}
.box_1 {
    width:200px;
    height:200px;
    font-weight:bold;
    background-color:#FF0000;
    border:1px solid #000000;
}
.box_2 {
    width:200px;
    height:200px;
    font-weight:bold;
    background-color:#6699FF;
    border:1px solid #000000;
}
.box_3 {
    width:200px;
    height:200px;
    font-weight:bold;
    background-color:#FFFF00;
    border:1px solid #000000;
}
.box_4 {
    width:200px;
    height:200px;
    font-weight:bold;
    background-color:#00CC99;
    border:1px solid #000000;
}

jQuery

$('a').click(function (e) {
    e.preventDefault();
    $('#hiddendivs div').not($('#'+$(this).data("box"))).fadeOut();
    $('#' + $(this).data("box")).fadeToggle();
})

顺便说一句,CSS 可以进一步简化。

关于javascript - 向显示和隐藏 div 的 javascript 添加淡入淡出效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23747058/

相关文章:

javascript - 选择从脚本加载的 HTML 元素

javascript - Highcharts 列 : add dynamically series with drilldown data

javascript - 展开表格中的一行

javascript - 调整页面大小后固定导航栏问题

iphone - 使用 Touchevent 在 jQuery 中拖放(iPhone 浏览器)

php - Drupal:注册后留在同一页面

javascript - 仅使用一次tinymce编辑器textarea

javascript - 如何使用AJAX调用API并返回数据?

javascript - Highcharts 错误加载 map 插件

javascript - 静音 iframe 代码编辑