【前端分享】jQuery.lazyload详解(转)
jQuery實(shí)現(xiàn)圖片延遲加載,不知道是否可以節(jié)省帶寬呢?
有人知道嗎?
這究竟只是一個(gè)視覺特效還是真的能延遲加載減少服務(wù)器的請求呢?
<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是延遲加載所有圖片,也可以根據(jù)不同模板作相應(yīng)改動,比如我這個(gè)主題,可以改成#post?img,這樣只延遲加載#post?容器內(nèi)的圖片,否則可能影響到側(cè)邊圖片的加載,主要是留言者頭像可能會最后加載;
fadeIn是圖片顯示效果
這樣基本就可以了!
如果上面的功能可能沒有達(dá)到你的要求,還有幾個(gè)選項(xiàng)可供設(shè)置。
可以設(shè)置閥值來控制?靈敏度
$(“img”).lazyload({?threshold?:?200?});???
把閥值設(shè)置成200?意思就是當(dāng)圖片沒有看到之前先load?200像素。當(dāng)然了你也可以通過設(shè)置占位符圖片和自定事件來觸發(fā)加載圖片事件
$("img").lazyload({?
? ?placeholder : "img/grey.gif",?
? ? ?event : "click"?
});
還可以通過定義effect?參數(shù)來定義一些圖片顯示效果
$("img").lazyload({?
? ? placeholder : "img/grey.gif",?
? ? effect : "fadeIn"?
});
事件觸發(fā)加載,事件可以是任何?jQuery?時(shí)間,?如:?click?和?mouseover.?你還可以使用自定義的事件,?如:?sporty?和?foobar.?默認(rèn)情況下處于等待狀態(tài),?直到用戶滾動到窗口上圖片所在位置.?在灰色占位圖片被點(diǎn)擊之前阻止加載圖片,?你可以這樣做:
$("img").lazyload({?
? ? ? placeholder : "img/grey.gif",?
? ? ? event : "click"?
});
延遲加載圖片,Lazy?Load?插件的一個(gè)不完整的功能,?但是這也能用來實(shí)現(xiàn)圖片的延遲加載.?下面的代碼實(shí)現(xiàn)了頁面加載完成后再加載.?頁面加載完成?5?秒后,?指定區(qū)域內(nèi)的圖片會自動進(jìn)行加載.
$(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?對象并作為參數(shù)傳到初始化方法里面.
?CSS
#container {?
? ? ? height: 600px;?
? ? ? overflow: scroll;?
}
JavaScript?代碼:
$("img").lazyload({?
? ? placeholder : "img/grey.gif",?
? ? container: $("#container")?
});
當(dāng)圖片不順序排列,滾動頁面的時(shí)候,?Lazy?Load?會循環(huán)為加載的圖片.?在循環(huán)中檢測圖片是否在可視區(qū)域內(nèi).?默認(rèn)情況下在找到第一張不在可見區(qū)域的圖片時(shí)停止循環(huán).?圖片被認(rèn)為是流式分布的,?圖片在頁面中的次序和?HTML?代碼中次序相同.?但是在一些布局中,?這樣的假設(shè)是不成立的.?不過你可以通過?failurelimit?選項(xiàng)來控制加載行為.
$("img").lazyload({?
failurelimit : 10?
});
轉(zhuǎn)載于:https://www.cnblogs.com/alwaysblog/p/6936354.html
總結(jié)
以上是生活随笔為你收集整理的【前端分享】jQuery.lazyload详解(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络流】【待补】C. Heidi an
- 下一篇: easyui datagrid 后台分页