懶載入實現
阿新 • • 發佈:2018-12-14
懶載入:(1)圖片進入可視區域之後請求資源,對於電商,頁面很長的場景,減少無效的資源載入(單頁應用,觀看的時候才去載入),(2)併發載入的資源過多會影響網站的正常使用。
具體實現懶載入:圖片的src的地址被改變的時候被載入。監聽滑動的事件,當圖片進入可視區域的時候才去載入。
window.onload = function (ev) { let viewheight = document.documentElement.clientWidth; function lazyload() { //實現懶載入 let allNode = document.querySelectorAll("img[lazyload][data-origin]"); //進行遍歷 Array.from(allNode).forEach((item,index)=>{ let react; console.log(item.dataset) if(item.dataset.origin === "") { return ; } react = item.getBoundingClientRect(); if(react.bottom >=0 && react.top<viewheight){ //到達可視區域 //給圖片提供地址 let img = new Image(); img.src = item.dataset.origin; img.onload = ()=>{ item.src = img.src; } item.removeAttribute("data-origin"); item.removeAttribute("lazyload"); } }) } lazyload();//上來先呼叫一下 //繫結事件 document.addEventListener("scroll",lazyload); }