2013-05-19 50 views
1

我一直在使用鏈接的setTimeout做到這一點看到的例子。但是,這不適用於無限數量的圖像。 呼籲多張圖片。每個功能會導致它們同時消失英寸有沒有像.each這樣的函數可用於阻止執行的循環?如何在圖像逐一淡出?

回答

6

您可以使用jQuery delay方法:

$('img').each(function(i) { 
    $(this).delay(i * 400).fadeIn(); 
}); 
+2

搗鼓你' - >'http://jsfiddle.net/4uqzA/1/ –

+0

這如何做一個接一個?你指望timers..you可以通過概率一個完整的,以淡入並將其綁定到迭代次數,所以你現在哪的img你use.that會更好IMO。 –

+1

'i'每增加一個圖像 – PitaJ

1

你不應該使用(或別想)阻斷方法在JavaScript中。您可以爲fadeIn方法指定一個回調。它將在動畫完成後調用。在你的回調中,你可以開始下一張圖片的動畫。

1

「是否有像.each這樣的函數可用於循環,即 阻止執行?

「我一直在使用鏈式setTimeout的做到這一點。但是,這種 不會爲圖像的數量不定的工作看到的例子。」

它的工作,如果函數將使用自己的回調。例如:

var images = [ '#img1', '#img2', '#img3' ], index = 0; 
function fade() { 
    if (index < images.length) { 
    $(images[index++]).fadeIn(fade); 
    } 
} 
fade(); 
1
function fadeInComplete(i,$imgs) 
{ 

    if (i >= $imgs.length) return; 
    $imgs[i].fadeIn(400,fadeInComplete.bind(i+1,$imgs); 
} 

$imgs = $('img'); 
fadeInComplete(0,$imgs);