Lazy Load 是一個用 JavaScript 編寫的 jQuery 插件. 它可以延遲加載長頁面中的圖片. 在瀏覽器可視區域外的圖片不會被載入, 直到用戶將頁面滾動到它們所在的位置. 這與圖片預加載的處理方式正好是相反的.在包含很多大圖片長頁面中延遲加載圖片可以加快頁面加載速度. 瀏覽器將會在加載可見圖片之後即進入就緒狀態. 在某些情況下還可以幫助降低服務器負擔。
-
下載和引用
官網下載地址:[jquery.lazyload.js](http://plugins.jquery.com/lazyload/)
Lazy Load 依賴於 jQuery. 所以需要引用2個js
- 簡單調用
要使用懶加載,需要改變img的src標籤
html代碼:
<img alt="" width="640" height="480" data-original="img/example.jpg" />
js代碼:
$(function() {
$("img").lazyload();
});
這樣設置就會將所有的img的並且擁有data-original標籤的圖片更改爲懶加載。
備註:這裏必須設置圖片的width和height,否則插件無法正常工作。
上面是最簡單的調用,但是一般而言,我們還有一些特殊的需求,比如想要提前一點點加載,避免網絡過慢時加載緩慢,加載隱藏圖片等等,lazyload都爲我們提供相應的參數。
- 設置臨界點
默認情況下圖片會出現在屏幕時加載. 如果你想提前加載圖片, 可以設置threshold 選項, 如:設置 threshold 爲 200 令圖片在距離屏幕 200 像素時提前加載.
$("img").lazyload({
threshold : 200
});
- 使用特效
默認情況下,圖像完全加載並調用show()。你可以使用任何你想要的效果。下面的代碼使用fadeIn (淡入效果)
$("img").lazyload({
effect : "fadeIn"
});
- 當圖片不連續時
滾動頁面的時候, Lazy Load 會循環爲加載的圖片. 在循環中檢測圖片是否在可視區域內. 默認情況下在找到第一張不在可見區域的圖片時停止循環. 圖片被認爲是流式分佈的, 圖片在頁面中的次序和 HTML 代碼中次序相同. 但是在一些佈局中, 這樣的假設是不成立的. 不過你可以通過 failurelimit 選項來控制加載行爲.
$("img").lazyload({
failure_limit : 20
});
將 failurelimit 設爲 20 ,當插件找到 20 個不在可見區域的圖片時停止搜索.
- 加載隱藏圖片
當界面有很多隱藏圖片的時候並希望加載他們的時候則使用kip_invisible 屬性,將其設置爲false
$("img").lazyload({
skip_invisible : false
});
到這裏,上面的方法已經基本滿足常規的懶加載使用了,還有特殊的使用,可查看官網API。