懶加載的使用


jQuery.lazyload詳解

 

jQuery實現圖片延遲加載,不知道是否可以節省帶寬呢?
有人知道嗎?

這究竟只是一個視覺特效還是真的能延遲加載減少服務器的請求呢?


<script type="text/javascript" src="<?php bloginfo('template_directory');?>/js/jquery.lazyload.js"></script> 
<script type="text/javascript"> 
$(function() { 
$("img").lazyload({ 
effect : "fadeIn" 
}); 
}); 
</script> 

其中img是延遲加載所有圖片,也可以根據不同模板作相應改動,比如我這個主題,可以改成#post img,這樣只延遲加載#post 容器內的圖片,否則可能影響到側邊圖片的加載,主要是留言者頭像可能會最后加載;

fadeIn是圖片顯示效果

這樣基本就可以了!

如果上面的功能可能沒有達到你的要求,還有幾個選項可供設置。

可以設置閥值來控制 靈敏度

$(“img”).lazyload({ threshold : 200 });   

把閥值設置成200 意思就是當圖片沒有看到之前先load 200像素。當然了你也可以通過設置占位符圖片和自定事件來觸發加載圖片事件

$("img").lazyload({    
placeholder : "img/grey.gif",    
event : "click"   
});   

還可以通過定義effect 參數來定義一些圖片顯示效果

$("img").lazyload({    
placeholder : "img/grey.gif",    
effect : "fadeIn"   
});   

事件觸發加載,事件可以是任何 jQuery 時間, 如: click 和 mouseover. 你還可以使用自定義的事件, 如: sporty 和 foobar. 默認情況下處於等待狀態, 直到用戶滾動到窗口上圖片所在位置. 在灰色占位圖片被點擊之前阻止加載圖片, 你可以這樣做:

$("img").lazyload({    
placeholder : "img/grey.gif",    
event : "click"   
});   

延遲加載圖片,Lazy Load 插件的一個不完整的功能, 但是這也能用來實現圖片的延遲加載. 下面的代碼實現了頁面加載完成后再加載. 頁面加載完成 5 秒后, 指定區域內的圖片會自動進行加載.

$(function() {    
$("img:below-the-fold").lazyload({    
placeholder : "img/grey.gif",    
event : "sporty"   
});    
});    
$(window).bind("load", function() {    
var timeout = setTimeout(function() {$("img").trigger("sporty")}, 5000);    
});   

圖片在容器里面你可以將插件用在可滾動容器的圖片上, 例如帶滾動條的 DIV 元素. 你要做的只是將容器定義為 jQuery 對象並作為參數傳到初始化方法里面.

CSS

#container {    
height: 600px;    
overflow: scroll;    
}   

JavaScript 代碼:

$("img").lazyload({    
placeholder : "img/grey.gif",    
container: $("#container")    
});   

當圖片不順序排列,滾動頁面的時候, Lazy Load 會循環為加載的圖片. 在循環中檢測圖片是否在可視區域內. 默認情況下在找到第一張不在可見區域的圖片時停止循環. 圖片被認為是流式分布的, 圖片在頁面中的次序和 HTML 代碼中次序相同. 但是在一些布局中, 這樣的假設是不成立的. 不過你可以通過 failurelimit 選項來控制加載行為.

$("img").lazyload({    
failurelimit : 10    
});   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM