2016-12-17 65 views
1

我正在使用JavaScript庫在網頁上排列少量圖像。以下瀏覽器:腳本應該先加載還是加載圖像?

  • 火狐
  • IE 11
  • 微軟邊緣

渲染頁面,因爲它是計劃,與Chrome瀏覽器出現問題。它弄亂了整個佈局。

上述瀏覽器不會加載任何內容,除非所有圖像都被下載,直到它顯示一個空白的白色屏幕,並突然顯示所有內容完美呈現。在Chrome瀏覽器中,瀏覽器會隨時顯示內容,因爲您可以看到以掃描線方式顯示的圖像。

我已經打過電話來排列內這些圖像的功能:

$(window).load(function() {})

,並沒有解決這個問題,我試圖在<head></head>,並調用這個剛剛閉幕</body>之前,即也沒有解決它。這是Chrome相關的問題嗎?

該函數應該被調用的正確時間點是什麼?

+0

注意:[加載資源不是全部](http://stackoverflow.com/questions/39543290/how-to-know-when-browser-finish-to-process-an-image-after-loading-它),但它已經是一個很好的開始;-) – Kaiido

回答

1

沒有與旨在解決您的問題的綜合名稱imagesLoaded在網絡上一個漂亮的圖書館!當然,它應該可以跨瀏覽器工作,所以在Chrome或其他瀏覽器中的行爲沒有差異。

有了它的幫助,當所有圖像加載到特定的DOM元素或由jQuery選擇器控制的元素時,您可以運行您的代碼。像:

$('body').imagesLoaded(function() { 
    // images have loaded 
}); 

還有,如果你需要支持.done.fail.progress回調,所以檢查文檔。

+0

這個庫已經爲我工作了! –

0

圖片應該首先加載爲隱藏,然後你的腳本應該運行像

$(document).ready(function(){ 

// here do the scripting may be showing them one by one 

}); 
+0

正如顯示:無? –

1

在某些情況下,您必須等待圖像加載後才能獲取<img>標記中未指定的參數,例如高度。那麼你可以使用$(window).load

在其他情況下,例如,爲圖像添加一些類,可以在圖像加載之前執行。

如果您想要在頁面加載完成後加載圖像,或者當用戶真的滾動並查看每個圖像時,Lazy Load是一個很好的插件,它支持回調。