2011-08-18 66 views
0

我有以下的jQuery代碼:控制.fadeOut()與jQuery

<script type="text/javascript"> 
$(function(){ 
    $('.gallery-slider li:gt(0)').hide(); 
    setInterval(function(){ 
     $('.gallery-slider li:first-child').fadeOut("slow") 
     .next('.gallery-slider li').fadeIn(1000) 
     .end().appendTo('.gallery-slider');}, 
     2000); 
}); 
</script> 

的.fadeIn似乎是工作,但是.fadeOut似乎並沒有得到適當的接受速度參數。我需要改變什麼才能正常工作?謝謝。

+0

'慢' == 1000; – Fresheyeball

回答

2

問題是淡入淡出功能不會阻止..

你可以通過一個函數來淡出,使其後的完整,例如運行

$('.blarg').fadeOut(100, function() { 
    $('.blarg).fadeIn(); 
}); 

會等到它完全淡出它試圖淡出早在之前

+0

感謝您的迴應,但我似乎無法得到語法工作。如何正確使用.fadeOut工作與上述原始代碼? – David542

+0

-1表示淡入淡出功能不會阻止:http://jsfiddle.net/7vsxp/ –

+0

@Joesph是對的。我在調用fadeOut之後遇到了一個問題 - 問題在於fadeOut沒有將元素設置爲在下一行代碼耗盡之前完全隱藏,這簡短地導致了(在我的代碼中)兩個橫幅顯示在容器中與此同時。那是什麼促使我相信它是非阻塞的 - 我必須做的只是在fadeOut之後調用hide()以確保它按順序發生。 – Stephen

0

試試這個:

$('.gallery-slider li:gt(0)').hide(); 
setInterval(function(){ 
    $('.gallery-slider li:first-child').fadeOut("slow", function() { 
     $(this).next('.gallery-slider li').fadeIn(1000) 
    }).appendTo('.gallery-slider');}, 
    2000); 
+0

試過了。這只是在前兩張圖像之間旋轉,而不是在一個循環中全部顯示。 – David542