對前端而言,提高網頁的加載速度非常重要。眾所周知,圖片是最吃流量的。我們都知道的優化技巧是頁面加載時只加載首屏頁面用到的圖片即可,其他的圖片資源可以稍后再加載。有一款jquery的lazyload插件便是一個可以實現圖片延遲加載的插件,在用戶觸發某個條件之后再加載對應的圖片資源,這對網站的打開速度有很大提升。
1、插件的使用方法很簡單(依賴jquery):引入lazyload.js(壓縮版才4KB)
2、對我們想要延遲加載的圖片添加lazy樣式,用”data-original” 替換圖片的引用路徑
3、將頁面里所有img屬性src屬性用data-xx代替,當頁面滾動直至此圖片出現在可視區域時,用js取到該圖片的data-xx的值賦給src。
<!-- 對img標簽使用 --><img class="lazy" data-original="img/example.jpg"> <!-- 延遲加載元素的背景圖 --><div class="lazy" data-original="img/bg.jpg">
4、在JS文件中調用lazyload()方法,具體例子如下。
$(function(){ //可任意選擇你想延遲加載的目標元素,例如直接使用樣式名lazy作為選擇條件 $("img .lazy").lazyload({ placeholder : "img/grey.gif", //占位圖 effect: "fadeIn", // 加載效果 threshold: 200, // 提前加載 event: 'click', // trigger container: $("#container"), //指定容器 failurelimit : 5 // 發生混亂時的hack手段 }); });
參數的具體說明如下:
參數 | 作用 | 說明 |
---|---|---|
placeholder | 占位圖片 | 圖片路徑值,圖片加載時占位圖自動隱藏 |
effect | 圖片載入時動畫效果 | 值有show(直接顯示),fadeIn(淡入),slideDown(滑入)等jq常用效果 |
threshold | 提前開始加載高度 | 數字值,是離需要加載目標的高度.如設置為200,表示滾動條在離目標位置還有200的高度時就開始加載圖片,避免用戶看到圖片加載過程 |
event | 圖片加載trigger | 值有click(點擊),mouseover(鼠標劃過),sporty(運動的),foobar(…) |
container | 指定容器 | lazyload默認在滾動瀏覽器滾動條時生效,這個參數可以讓你在滾動某DIV的滾動條時執行懶加載 |
failurelimit | 提高穩定性 | 若是某一張該被加載的圖片未能正確加載,則加載其后的第N張圖 |