【前端分享】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?
});
轉載于:https://www.cnblogs.com/alwaysblog/p/6936354.html
總結
以上是生活随笔為你收集整理的【前端分享】jQuery.lazyload详解(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络流】【待补】C. Heidi an
- 下一篇: DispacherServlet默认加载