woff 發表於 2021-11-8 23:35:18

jQuery圖片懶載入 lazyload.js使用方法

lazyload是一個用Javascript編寫的jQuery外掛,它可以延遲載入長頁面中的圖片,在瀏覽器可視區域外的圖片將不會被載入,直到使用者將它們滾動到它們所在的位置。跟bootstrap一樣,lazyload.js也是依賴於jQuery<script src="resources/js/jquery-1.8.3.min.js"></script>
<script src="resources/js/jquery.lazyload.min.js"></script>
與之前的圖片引入路徑不同,真實的圖片路徑不再是用src屬性,而是data-original。src屬性用於引入佔位符圖片(當然,個人更推薦佔位符不寫在img標籤裡)。同時,必須設定img的寬度和高度,給每一個懶載入的圖片加一個class比如.lazy
四大屬性必須同時具備:class   data-original   widthheight<img class="lazy" width="640" height="480" data-original="resources/images/2.jpg">
要想讓所有class為lazy的圖片懶載入,只需要簡單的一行程式碼就可以<script src="resources/js/jquery-1.8.3.min.js"></script>
<script src="resources/js/jquery.lazyload.min.js"></script>
<script>
$('img.lazy').lazyload( );
</script>
</body>
</html>
設定臨界點預設情況下,圖片會出現在顯示區域時才載入,如果想提前載入圖片,可以設定 threshold 選項,比如設定thredshold為200,令圖片在距離顯示區域200px時提前載入$('img.lazy').lazyload({
threshold:200,
});
設定佔位符前面提到過,可以用img標籤的src屬性引入一個圖片,比如loading.gif,替代未進去顯示區域的待載入圖片,我們同樣可以新增 placeholder 選項來實現$('img.lazy').lazyload({
placeholder:'resources/images/loading.gif'
});
設定事件來觸發載入可以用jQuery事件如click,mouseover,也可以用自定義事件,預設情況下,是要等到使用者向下滾動並且影象出現在顯示區域時才觸發。比如:只有當使用者點選的時候才載入圖片$('img.lazy').lazyload({
event:'click'
});
https://codertw.com/wp-content/uploads/2018/06/20180624083646-5b2f581ec92db.png使用特效預設情況下,外掛等待影象完全載入後呼叫show()方法來顯示圖片,我們也可以用一些特效比如:fadeIn$('img.lazy').lazyload({
effect:'fadeIn'
});
圖片在容器裡面可用在容器可滾動的圖片上,例如帶滾動條的DIV元素,需要將容器定義為jQuery物件,並作為引數傳到初始化方法裡面,比如:垂直滾動#container {
height: 600px;
overflow: scroll;
}
<img class="lazy" data-original="img/example.jpg" width="765" height="574">
$("img.lazy").lazyload({
effect : "fadeIn",
container: $("#container")
});
當圖片不順序排列滾動頁面的時候, Lazy Load 會迴圈的載入圖片. 在迴圈中檢測圖片是否在可視區域內. 預設情況下在找到第一張不在可見區域的圖片時停止迴圈. 圖片被認為是流式分佈的, 圖片在頁面中的次序和 HTML 程式碼中次序相同. 但是在一些佈局中, 這樣的假設是不成立的. 不過你可以通過 failurelimit 選項來控制載入行為.$("img.lazy").lazyload({
failure_limit : 10
});
將 failurelimit 設為 10 令外掛找到 10 個不在可見區域的圖片是才停止搜尋. 如果你有一個猥瑣的佈局, 請把這個引數設高一點.載入隱藏圖片可能在你的頁面上埋藏可很多隱藏的圖片. 比如外掛用在對列表的篩選, 你可以不斷地修改列表中各條目的顯示狀態. 為了提升效能, Lazy Load 預設忽略了隱藏圖片. 如果你想要載入隱藏圖片, 請將 skip_invisible 設為 false$("img.lazy").lazyload({
skip_invisible : false
});
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援!
文章出處
頁: [1]
查看完整版本: jQuery圖片懶載入 lazyload.js使用方法