目前我用的這個熱點新聞主題由於有縮略圖功能所以也試着加上看看效果如何。這裏把這一功能應用到WordPress主題方法說一下,其實很簡單,首先下載jquery.lazyloa.js,放到主題目錄中,然後在header.php模板文件</head>標籤前添加如下代碼:
- <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
- });