1.1 能提升使用者的體驗,不妨設想下,使用者開啟像手機淘寶長頁面的時候,如果頁面上所有的圖片都需要載入,由於圖片數目較大,等待時間很長,
使用者難免會心生抱怨,這就嚴重影響使用者體驗。
1.2 減少無效資源的載入,這樣能明顯減少了伺服器的壓力和流量,也能夠減小瀏覽器的負擔。
1.3 防止併發載入的資源過多會阻塞js的載入,影響網站的正常使用。
2.1 遍歷每張圖片,圖片到document上邊的距離offset().top <=視窗的高度$(window).heght() + 元素滾出去的距$(ducument).scrollTop()
時進行載入
2.2 以上情況下,新增自定義屬性 attr("loaded",1) ,將data-src的值賦值給圖片的src
2.3以上封裝為函式 ,滾動的情況下呼叫此函式
2.4trigger()方法自動觸發事件
<ul>
<li>
<img src="未載入時固定圖片" src="https://segmentfault.com真實圖片路徑" alt="">
</li>
<li>
<img src="未載入時固定圖片" src="https://segmentfault.com真實圖片路徑" alt="">
</li>
<li>
<img src="未載入時固定圖片" src="https://segmentfault.com真實圖片路徑" alt="">
</li>
<li>
<img src="未載入時固定圖片" src="https://segmentfault.com真實圖片路徑" alt="">
</li>
</ul>
<script src="./jquery.js"></script>
<script>
$(function(){
function lazyload(){
$(`img`).each(function (index, value) {
if($(this).attr(`loaded`) == `1`)return;
if ($(this).offset().top <= $(window).height() + $(document).scrollTop()) {
$(this).attr(`src`,$(this).attr(`data-src`)).attr(`loaded`,`1`);
}
})
}
$(window).scroll(function(){
lazyload();
}).trigger(`scroll`);
})
</script>