2015-06-15 55 views
-1

我在網頁中有5個非常大的CSS3/jQuery鏈動畫,當用戶導航到每個單獨的(5)子頁面時,這些會出現在5個子頁面上。 。如何使用.load(function(){在一個大功能

我想用/有效果jQuery的

$(img).load(function() { 
    // Run code 
}); 

除了我只是想檢查圖像中每個功能滿載..如果他們加載/仍在加載顯示一個簡單的'旋轉動畫gif'代替我的動畫該功能;一旦動畫功能LOAD之內的所有的圖像,然後顯示動畫和.hide();spinner.gif

function one() { 

// tons of animation code 

圖像是在CSS作爲背景圖像(CSS3動畫; jQuery的大多設置觸發器)

+0

圖像是動態添加到頁面或在原來的HTML? –

+0

它們是動態的;大約90%在CSS內 –

+1

你不能真正聽取CSS內部圖像的onload。我會說,沒有辦法以可維護的方式來做到這一點。另一方面,您可以使用$(window).load()在頁面完全加載時觸發(包括您在CSS內部的圖像。) –

回答

3

你會希望多個延遲對象將它們傳遞給$.when()。我相信你正在尋找這樣的東西:

var d1 = new $.Deferred(); 
var d2 = new $.Deferred(); 
var d3 = new $.Deferred(); 

$.when(d1, d2, d3).then(function() { 
    // perform your animations here 
}); 

$(img1).load(function() { 
    d1.resolve(); 
} 

$(img2).load(function() { 
    d2.resolve(); 
} 

$(img3).load(function() { 
    d3.resolve(); 
} 
+0

我認爲您不需要三次解析'd1',所以我更新了你的代碼 – Jamiec

+1

然而,處理延遲的好方法是在這種情況下解決'n'的方法嗎? – Pogrindis

相關問題