在Web項目中,大量的圖片應用會致使頁面加載時間過長,浪費沒必要要的帶寬成本,還會影響用戶瀏覽體驗。javascript
Lazyload 是一個文件大小僅4kb的圖片懶加載組件(不依賴其它第三方庫),組件會根據用戶當前瀏覽的區域去自動加載對應的圖片(用戶尚未瀏覽的區域圖片則不會進行加載)。html
Lazyload 容許圖片加載以前,指定一張相對較小的封面圖。組件會優先加載封面圖片,以優化用戶瀏覽感覺。當原圖加載完成以後則會覆蓋封面圖片。java
除此以外,Lazyload 還能獲取到當前圖片的加載進度。git
2.1 Htmlgithub
data-src
property.data-cover
is not necessary<img class="img" data-src="http://xxx/img1.jpg" data-cover="http://xxx/img1-cover.jpg"> <img class="img" data-src="http://xxx/img2.jpg" data-cover="http://xxx/img2-cover.jpg"> <img class="img" data-src="http://xxx/img3.jpg" data-cover="http://xxx/img3-cover.jpg"> <div class="imgBg" data-src="http://xxx/img4.jpg" data-cover="http://xxx/img4-cover.jpg"></div> <div class="imgBg" data-src="http://xxx/img5.jpg" data-cover="http://xxx/img5-cover.jpg"></div> <div class="imgBg" data-src="http://xxx/img6.jpg" data-cover="http://xxx/img6-cover.jpg"></div>
2.2 Import ./dist/Lazyload.js
file to the pageapp
<script src="http://xxx/dist/Lazyload.js"></script>
or優化
let Lazyload = require('./dist/Lazyload.js');
2.3 Initializationui
//Get elements var eList = []; eList.push.apply(eList, document.getElementsByClassName('img')); eList.push.apply(eList, document.getElementsByClassName('imgBg')); //Create Lazy var lazy = new Lazyload({ obj:eList, //elements range:200 //Extra range }); // //custom tips // lazy.tips = function(obj){ // var e = obj.o, //element // schedule = obj.schedule; //load schedule // console.log(e,schedule); // }; //Init lazy.init();