研究背景:網站中若是圖片過多,就會由於加載圖片而等待很長時間,此時咱們就用到圖片延時加載插件jquery.lazyload.js,這個插件可讓咱們在向下滾動的時候加載圖片。讓網頁首屏儘量快的加載進來。javascript
如何使用jquery.lazyload.js:java
一、jquery.lazyload.js依賴於 jquery. 請將下列代碼加入HTML的結尾,也就是</body>前:jquery
1 <script type="text/javascript" src="jquery.js"></script> 2 <script type="text/javascript" src="jquery.lazyload.js"></script>
二、你必須改變圖片的標籤。圖像的地址必須放在data-original屬性上。給懶加載圖像一個特定的class(例如:lazy)。這樣你能夠很容易地進行圖像插件捆綁。代碼以下:瀏覽器
1 /*使用格式 */ 2 <img class="lazy" alt="" width="640" height="480" data-original="img/example.jpg" /> 3 4 /* 調用插件*/ 5 $(function() { 6 $("img.lazy").lazyload(); 7 });
提示:這裏必須設置圖片的width和height,不然插件可能沒法正常工做。佈局
這樣就成功調用了,下面咱們能夠設置幾個配置參數:性能
一、設置加載臨界點網站
默認狀況下圖片會出如今屏幕時加載. 若是你想提早加載圖片, 能夠設置threshold 選項, 設置 threshold 爲 200 令圖片在距離屏幕 200 像素時提早加載.spa
1 $("img.lazy").lazyload({ 2 threshold : 200 3 })
二、設置觸發加載事件插件
你可使用jquery事件,例如click和mouseover。也可使用自定義事件,如sporty、foobar默認狀況下是要等到用戶向下滾動而且圖像出如今視口中時。只有當用戶點擊它們才加載圖片:code
1 $("img.lazy").lazyload({ 2 event : "click" 3 });
三、使用延時加載特效
默認狀況下,插件等待圖像徹底加載並調用show()。你可使用任何你想要的效果。下面的代碼使用fadeIn (淡入效果)。
1 $("img.lazy").lazyload({ 2 effect : "fadeIn" //淡入效果 3 });
四、針對不啓用JavaScript的狀況
幾乎全部瀏覽器的 JavaScript 都是激活的. 然而可能你仍但願能在不支持 JavaScript 的客戶端展現真實圖片. 當瀏覽器不支持 JavaScript 時優雅降級, 你能夠將真實的圖片片斷在寫 <noscript> 標籤內.
1 <img class="lazy" data-original="img/example.jpg" width="640" heigh="480"> 2 <noscript><img src="img/example.jpg" width="640" heigh="480"></noscript>
能夠經過 CSS 隱藏佔位符.
1 .lazy { 2 display: none; 3 }
在支持 JavaScript 的瀏覽器中, 你必須在 DOM ready 時將佔位符顯示出來, 這能夠在插件初始化的同時完成.
1 $("img.lazy").show().lazyload();
五、圖片在容器裏面
你能夠將插件用在可滾動容器的圖片上, 例如帶滾動條的 DIV 元素. 你要作的只是將容器定義爲 jQuery 對象並做爲參數傳到初始化方法裏面.
六、當圖像不連續時設置不在可見區域內的圖片數
滾動頁面的時候,,jquery.lazyload.js會循環爲加載的圖片. 在循環中檢測圖片是否在可視區域內.。默認狀況下在找到第一張不在可見區域的圖片時中止循環. 圖片被認爲是流式分佈的, 圖片在頁面中的次序和 HTML 代碼中次序相同. 可是在一些佈局中, 這樣的假設是不成立的. 不過你能夠經過 failurelimit 選項來控制加載行爲.
1 $("img.lazy").lazyload({ 2 failure_limit : 10 3 });
七、延時加載隱藏的圖片
可能在你的頁面上埋藏可不少隱藏的圖片, 好比插件用在對列表的篩選, 你能夠不斷地修改列表中各條目的顯示狀態. 爲了提高性能,,jquery.lazyload.js默認忽略了隱藏圖片. 若是你想要加載隱藏圖片, 請將 skip_invisible 設爲 false.
完結,如有補充,感激涕零!