2013-10-15 44 views
0

嘿,我有一個面板(br_Panel),它包含四個div,類爲'smallPanel',id爲br_Panel1,br_Panel2等,它們的大小相同且大小相同,並且彼此重疊。當函數運行時,每5秒一個淡出並顯示下面的一個,當它們全部淡出時,它們都返回淡入。問題在於最後一個div的淡出和淡入淡出之間的停頓時間是15秒,是每個div離開的三倍。如何將重置時間中的這種暫停減少到5秒?Javascript setInterval需要太長的時間來重置

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> 
+0

你能告訴你的HTML? – PSL

+0

將其編輯成OP – kylecblyth

回答

1

您剛纔說您br_Panel包含四個申報單與類smallPanel,但您的間隔功能將運行六次前i被重置(5,4,3,2,1,0)。這可能是因爲你的函數運行了超過需要的次數2次,這會導致你的延遲比應該延長10秒。

作爲附加的註釋,使用.find()的時候,你只需要通過在字符串的CSS選擇您使用的,而不是進入jQuery對象:

$('#br_Panel').find('.smallPanel').fadeIn();