CSS背景圖片的延遲加載是一種優化網站性能的方法,在網頁加載時不會立即加載整個頁面的所有內容和圖片,而是要等到用戶滾動到頁面的特定部分時才會加載圖片。
為了實現CSS背景圖片的延遲加載,可以使用javascript來監聽滾動事件,確定何時將圖片加載進來。
window.addEventListener('scroll', function() { var scrollY = window.scrollY; var windowHeight = window.innerHeight; var elements = document.querySelectorAll('.lazy-background'); for (var i = 0; i< elements.length; i++) { var element = elements[i]; var rect = element.getBoundingClientRect(); if (rect.top<= windowHeight && rect.bottom >= 0) { element.style.backgroundImage = 'url(' + element.getAttribute('data-src') + ')'; element.classList.remove('lazy-background'); } } });
在該代碼中,首先通過監聽滾動事件來獲取當前的滾動位置和窗口高度,在循環遍歷所有擁有‘lazy-background’類的元素。當檢測到一個元素已經出現在可視區域時,即元素頂部距離窗口底部不大于窗口高度且元素底部距離窗口頂部不小于0時,將該元素的data-src屬性作為背景圖片的地址,并將lazy-background類從元素中刪除,同時也從數組中移除該元素。
這種方法可以減少網站下載在初始化時需要下載的資源,從而提升速度和性能。此外,它還可以減少頁面的帶寬使用量和服務器負擔。