2016-10-04 47 views

回答

1

您可以使用圖像上的onload來檢測它何時加載。

var img = new Image(); 
 
img.src = "http://www.mind-coder.com/example.jpg"; 
 
img.onload = function() { alert("Height: " + this.height); }

下面

完整的示例,它有什麼作用:

  • 一個div叫蓋,蓋你的頁面下載所有圖像之前(可能顯示像請加載消息)。

  • JS腳本(在這裏需要香草沒有jQuery)搜索頁面中的所有圖像,並使用src存儲在data-src中的路徑爲每個圖像加載它們。

  • onload在圖像加載時執行,並且loadCount變量跟蹤加載了多少圖像,檢查頁面中的總數。

  • 當加載的圖片數量與頁面中圖片的數量相同時,隱藏封面並顯示您的頁面。

(function() { 
 
    var loadCount = 0; 
 
    var imgs = document.querySelectorAll('img'); 
 
    imgs.forEach(function(img) { 
 
img.src = img.dataset.src; 
 
img.onload = function() { 
 
    loadCount++; 
 
    if (loadCount === imgs.length) { 
 
    document.getElementById('cover').style.display = 'none'; 
 
    } 
 
}; 
 
    }); 
 
})()
#cover { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    background-color: red; 
 
}
<div id="cover">cover - loading</div> 
 
<img data-src="https://upload.wikimedia.org/wikipedia/commons/d/d9/Big_Bear_Valley,_California.jpg"> 
 
<img data-src="https://upload.wikimedia.org/wikipedia/commons/9/92/Big_Sur_Coast_California.JPG">

+1

如果其中一個圖像根本不加載(錯誤的URL或其他東西)會怎麼樣? – nnnnnn

+0

@nnnnnn感謝評論好點(+1),這個腳本只顯示OP的基本概念,並未指定該場景。順便說一下,可以使用'img.onerror'檢測圖像加載是否存在問題,並決定如何處理,例如:顯示錯誤消息,或者即使一頁或更多頁面沒有加載也顯示頁面成功了(但我因爲悲傷取決於OP的使用案例)。 – GibboK

0

你可以這樣做以下。首先設置顯示:沒有你的身體在HTML,所以它不會在以下條件下顯示任何內容,然後

$(window).on("load", function() { 
    //show the body like below 
    $("body").fadeIn(500); 
}); 

體{顯示:無; }

+1

這很好,很簡單,如果OP已將「jQuery」標籤放在他們的問題上,我會投它... – nnnnnn