2010-06-28 91 views
4

我已經弄明白了一些相當不錯的東西,我想用在一些即將到來的項目中。在加載時延上淡入淡出

這是對負載的動畫不透明度,或者可以稱之爲淡入。

我想知道,如果你能一些元素鏈接在一起(例如3),因此element2只有開始時element1結束,element3當無。 2是?

或者你應該在element2上定義延遲,並將延遲乘以element3

+0

通常這是使用[queuing](http://api.jquery.com/queue/)完成的。 – zzzzBov 2013-09-19 14:50:41

+0

@zzzzBov我會對如何使用排隊完成感興趣,也許如果它有任何優勢,可以將它作爲新的答案發布。 – 2013-09-19 15:33:09

+0

@PhilippM,沒有太多細節,你可以在一個元素上設置一個隊列(我通常在排隊多個元素的時候選擇一個公共的父元素),[它將正確地鏈接交互的順序,而不需要任何形式的花式循環或計算時間](http://jsfiddle.net/w4xZg/)。 – zzzzBov 2013-09-19 15:53:25

回答

12

如果你有申報單,說class="faded",你可以淡出每個負載,每個這樣的行:

$(".faded").each(function(i) { 
    $(this).delay(i * 400).fadeIn(); 
}); 

You can view a demo of this effect here,或a slower version here。該400是400毫秒,正常.fadeIn()速度:)

的時間您可以使用.hide()將其隱藏在頁面加載,這樣的:

$(".faded").hide() 

還是做在CSS:

.faded { display: none; } 
+0

非常感謝您......這就是我一直在尋找的! :-) – 2010-06-28 15:36:52

4

你可以有淡入在element2上開始在部件1的完成回調時間:

element1.fadeIn(500, function() { 
     element2.fadeIn(500, function() { 
      etc... 
+0

雖然這隻適用於少數,但一旦你超過3個左右,它真的不漂亮:) – 2010-06-28 14:48:03

-1

因爲我不相信這些類型的動畫有成功回調的方式,所以如果你知道一個元素會消失多久,你可以使用setTimeout()之類的東西來觸發下一個元素適當的時間已經過去了。

編輯:我站好了。