2012-09-11 146 views
3

我想知道是否這是一個好方法,以確保所有的圖像等加載之前,顯示#主div?等待一切加載之前顯示

在#main div中,我必須加載97個圖像,有時它不夠快,所以它在顯示圖像之前顯示正方形。

$(document).ready(function(){ 
    $('#main').hide(); 
    $(window).load(function(){ 
     $('#main').show(); 
    }); 
}); 

有人能給我一些很好的建議嗎?

+0

我可能只是'#main'默認情況下,CSS隱藏的,但除此之外,這似乎是合理的。 –

+0

'$(window).load()'不應該嵌套在'$(document).ready()'中。 –

+0

@DavidThomas:爲什麼不呢? $(window).load()變爲$(document).ready()之後...?請解釋一下:-) – Nomistake

回答

0

你可以看延遲加載,只加載視(可見部分沒有任何滾動),然後(如果/當)用戶滾動其他圖像顯示。也會減少帶寬消耗。否則,假設您遵循標準HTML併爲圖片預加載寬度/高度,我不會花費太多精力在「加載UI」之前加載它們 - 您的佈局應該在整個裝載過程中保持通暢,根據今天的標準,97張圖片(假設某種縮略圖)不應該花太長時間。

後續行動:這是一個用於jQuery的lazy-load plugindoes what I'm talking about。 (基本上Facebook使用它的新聞提要)

+0

布拉德克里斯蒂,感謝您花時間給出答案。 它並不是真正的97縮略圖/圖標的大小,不時給予延遲。 我的問題顯示al縮略圖/圖標流利的原因是基於MySQL的。 圖像不在mysql中,但要定義哪些縮略圖/圖標應該顯示在哪個被定義bij在mysql數據庫中的一些設置...所以,97查詢:-) 但我已經在尋找更好的系統:-) – Nomistake

+0

用戶,MySQL的查詢應該在頁面投放時執行,否?也就是說,延遲應該在HTML可見和/或渲染之前進行,這使得隱藏和顯示基於負載延遲的內容無關緊要。 (除非我誤解了這個問題)。 –

+0

wel, 我用php做了一段時間循環。而($ i <97)。 與每個循環我查詢數據庫以獲取與當前$ i數字相等的圖標圖像的名稱(選擇圖標從db WHERE square_id ='「。$ i。」'LIMIT 1)我生成一個div保存圖像... (這是因爲97圖標的佈局可以由CMS管理) 暫時,我不能想到另一種方式,但隨着我繼續學習......也許......:-) 也許生成一個數組保存圖像... – Nomistake

1

這樣會好的。但是,而不是使用jQuery最初隱藏<div id="main">元素,你也可以使用一個CSS屬性:

#main { 
    display: none; 
} 
+0

非常感謝你,我想我會改變你的建議,只是爲了讓它更乾淨! – Nomistake

1

您可以預先加載啓動頁面後面的所有圖像,然後在全部加載後隱藏啓動頁面。我目前是這樣做的73張圖片(18mb)

查看下面的鏈接中的答案會告訴你如何。

https://stackoverflow.com/a/13982980/1406211 - 演示包括

相關問題