0

嘿,我有一个面板 (br_Panel),其中包含四个 div,类为“smallPanel”,id 为 br_Panel1、br_Panel2 等,它们大小相同且相互重叠。当函数运行时,每 5 秒淡出一个并显示下面的一个,当它们全部淡出时,它们都以淡入方式返回。问题是最后一个 div 的淡出和所有它们的淡入之间的暂停是 15 秒,是每个 div 离开所需时间的三倍。如何将重置时间的暂停减少到 5 秒?

setInterval(function() {
    if(i < 0) {
        $('#br_Panel').find($('.smallPanel')).fadeIn();
        i = 5;
    }
    else
        i--;
    $('#br_Panel').find($('#br_Panel' + i)).fadeOut();
}, 5000);

这是 html (如果有帮助,每个最里面的 div 都绝对定位到 #br_Panel 以便它们相互重叠):

<div class="height1 panel" id="br_Panel">
    <div class="smallPanel" id="br_Panel1">content</div>
    <div class="smallPanel" id="br_Panel2">content</div>
    <div class="smallPanel" id="br_Panel3">content</div>
    <div class="smallPanel" id="br_Panel4">content</div>
</div>
4

1 回答 1

0

您提到您的 br_Panel 包含四个具有类 smallPanel 的 div,但是您的间隔函数将在重置之前运行六次i(5、4、3、2、1、0)。可能是您的函数运行的次数比需要的多 2 次,这导致您的延迟比应有的时间长 10 秒。

作为附加说明,当使用 .find() 时,您只需要传入您正在使用的字符串 css 选择器,而不是输入 jQuery 对象:

$('#br_Panel').find('.smallPanel').fadeIn();
于 2013-10-16T00:08:07.867 回答