TShopping

 找回密碼
 註冊
搜索
查看: 1030|回復: 0

[分享] jQuery圖片懶載入 lazyload.js使用方法

[複製鏈接]
發表於 2021-11-8 23:35:18 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
lazyload是一個用Javascript編寫的jQuery外掛,它可以延遲載入長頁面中的圖片,在瀏覽器可視區域外的圖片將不會被載入,直到使用者將它們滾動到它們所在的位置。
跟bootstrap一樣,lazyload.js也是依賴於jQuery
  1. <script src="resources/js/jquery-1.8.3.min.js"></script>
  2. <script src="resources/js/jquery.lazyload.min.js"></script>
複製代碼

與之前的圖片引入路徑不同,真實的圖片路徑不再是用src屬性,而是data-original。src屬性用於引入佔位符圖片(當然,個人更推薦佔位符不寫在img標籤裡)。同時,必須設定img的寬度和高度,給每一個懶載入的圖片加一個class比如.lazy
四大屬性必須同時具備:class   data-original   width  height
  1. <img class="lazy" width="640" height="480" data-original="resources/images/2.jpg">
複製代碼

要想讓所有class為lazy的圖片懶載入,只需要簡單的一行程式碼就可以
  1. <script src="resources/js/jquery-1.8.3.min.js"></script>
  2. <script src="resources/js/jquery.lazyload.min.js"></script>
  3. <script>
  4. $('img.lazy').lazyload( );
  5. </script>
  6. </body>
  7. </html>
複製代碼

設定臨界點
預設情況下,圖片會出現在顯示區域時才載入,如果想提前載入圖片,可以設定 threshold 選項,比如設定thredshold為200,令圖片在距離顯示區域200px時提前載入
  1. $('img.lazy').lazyload({
  2. threshold:200,
  3. });
複製代碼

設定佔位符
前面提到過,可以用img標籤的src屬性引入一個圖片,比如loading.gif,替代未進去顯示區域的待載入圖片,我們同樣可以新增 placeholder 選項來實現
  1. $('img.lazy').lazyload({
  2. placeholder:'resources/images/loading.gif'
  3. });
複製代碼

設定事件來觸發載入
可以用jQuery事件如click,mouseover,也可以用自定義事件,預設情況下,是要等到使用者向下滾動並且影象出現在顯示區域時才觸發。比如:只有當使用者點選的時候才載入圖片
  1. $('img.lazy').lazyload({
  2.   event:'click'
  3. });
複製代碼

使用特效
預設情況下,外掛等待影象完全載入後呼叫show()方法來顯示圖片,我們也可以用一些特效比如:fadeIn
  1. $('img.lazy').lazyload({
  2.   effect:'fadeIn'
  3. });
複製代碼

圖片在容器裡面
可用在容器可滾動的圖片上,例如帶滾動條的DIV元素,需要將容器定義為jQuery物件,並作為引數傳到初始化方法裡面,比如:垂直滾動
  1. #container {
  2.   height: 600px;
  3.   overflow: scroll;
  4. }
  5. <img class="lazy" data-original="img/example.jpg" width="765" height="574">
  6. $("img.lazy").lazyload({  
  7.   effect : "fadeIn",
  8.   container: $("#container")
  9. });
複製代碼

當圖片不順序排列
滾動頁面的時候, Lazy Load 會迴圈的載入圖片. 在迴圈中檢測圖片是否在可視區域內. 預設情況下在找到第一張不在可見區域的圖片時停止迴圈. 圖片被認為是流式分佈的, 圖片在頁面中的次序和 HTML 程式碼中次序相同. 但是在一些佈局中, 這樣的假設是不成立的. 不過你可以通過 failurelimit 選項來控制載入行為.
  1. $("img.lazy").lazyload({
  2.   failure_limit : 10
  3. });
複製代碼

將 failurelimit 設為 10 令外掛找到 10 個不在可見區域的圖片是才停止搜尋. 如果你有一個猥瑣的佈局, 請把這個引數設高一點.
載入隱藏圖片
可能在你的頁面上埋藏可很多隱藏的圖片. 比如外掛用在對列表的篩選, 你可以不斷地修改列表中各條目的顯示狀態. 為了提升效能, Lazy Load 預設忽略了隱藏圖片. 如果你想要載入隱藏圖片, 請將 skip_invisible 設為 false
  1. $("img.lazy").lazyload({
  2.   skip_invisible : false
  3. });
複製代碼

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援!



 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-29 17:15 , Processed in 0.128636 second(s), 23 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表