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