我想你會需要一個相當結構化的方法。
有跡象表明,決定圖像需要多長時間來加載,並會盡快它已經準備好展示的因素負荷。您可以保留一些隱藏的內容,直到您準備好向他們展示爲止,但是您仍然一次又一次地加載大量圖像,這是緩慢而痛苦的。
你已經清楚地得到了在一個特定的順序一個「創意」的原因裝載(背景先,等) - 這樣擁抱......你幾乎可以通過拿出一個時間表編排的負荷。
然後從初始頁面加載中除去第一個「波形」圖像。由於這些是CSS background-image
屬性,這意味着從樣式表中刪除它們。
然後,您可以使用jQuery設置它們background-image
樣式屬性加載每個後續圖像集:
$('.foreground').css('background-image', 'url(<path>)');
要創建一個「序」,你會希望每個組圖像,以便啓動時加載上一組已完成加載 - 檢測時的背景圖片加載完成討論HERE - 但模式可能是這個樣子:
var loadNextImageSet = function() {
var imageSet = listOfImageSets.pop();
loadImages(imageSet);
};
$(document).on('images-loaded', function() {
loadNextImageSet();
});
loadNextImageSet();
其中loadImages()
啓動圖像L異步掛載並在完成時觸發自定義的images-loaded
事件。
如果您仍然希望自己的網頁仍能正常(雖然不是那麼順利)沒有JavaScript加載,你可能想嘗試2種樣式 - 一個與所有的圖像(非JS用戶)和一個只第一波(JS用戶)。然後,您可以確保正確的拾取像這樣:
<html>
<head>
...
<noscript>
<link rel="stylesheet" href="full.css">
</noscript>
</head>
<body>
<script>
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'background-only.css';
document.head.appendChild(link);
</script>
...
</body>
</html>
不使用JavaScript的最乾淨的方式,但<script>
元素必須是早在儘量避免無樣式的內容的閃光。
用'Z-index'( css)或'zIndex'(Javascript)並手動設置該圖像的「圖層」。這樣,加載順序就不重要了。 –
我已經得到了CSS的地方。圖像加載在彼此的頂部,問題是第一個背景圖像(一塊大的天空塊)首先加載時,我需要它加載最後。我有一個非常小的身體背景,模仿20k文件中的背景圖層,但圖層是100k + - 這就是爲什麼我不想用天空片覆蓋背景,直到具有更高z值的山層,索引負載第一。 –