2011-04-22 84 views
0

我想知道在淡入內容之前是否可以檢查背景圖片是否已經加載?背景圖像設置在CSS中,所以如果用戶沒有打開js,他們仍然可以查看該網站。是否有可能檢查是否使用jQuery加載了背景圖片?

我已經試過$(".quick-load").load(function() { $("#content").fadeIn(); });

我也用。就緒(),但沒有任何效果。

我遇到的確切問題是圖像在某些場合會閃爍。

任何想法會有幫助,謝謝。

+0

一個問題......你是通過CSS加載血糖,以便它加載,即使JS被禁止,但再怎麼樣的內容?你不在乎嗎? :) – 2011-04-22 11:02:37

+0

我有一個特殊的沒有html5的js文件。所以如果沒有js被檢測到我有顯示:塊的內容 – saunders 2011-04-22 11:08:30

+0

這就是聰明:) – 2011-04-22 11:15:33

回答

2

我想你應該嘗試一個稍微不同的方式,這是第一次加載圖像中隱藏的圖像標籤,然後在加載事件做冷靜的衰落

<img src="background.png" alt="" id="background" 
style="visibility:hidden;position:absolute" /> 

然後做:

$('#background').load(function() { 
    $("#content").fadeIn(); } 
}); 

這將工作,因爲瀏覽器緩存加載的圖像,它將可用於後臺。只要確保不可見圖像和背景圖像的來源完全相同即可。

+0

啊,所以你假裝瀏覽器加載該圖像,但在加載不可見圖像時,我的背景圖像已經加載,它不會做任何閃爍? – saunders 2011-04-22 11:19:27

+0

是的,就是這樣。如果您也搜索圖片預加載,那麼您可以使用另一種策略。 – 2011-04-22 15:20:54

+0

啊惡人。感謝這一點,並感謝其他想法。即時通訊將首先給你的提示:) – saunders 2011-04-22 15:47:19

0

您可以使用隱藏的<img>「預加載」圖像。

$('<img/>').attr('src', 'http://picture.com/pic.png').load(function() { 
    $("#content").css({"background-image":"http://picture.com/pic.png" 
       .fadeIn(); 
}); 

How can I check if a background image is loaded?

相關問題