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 width height - <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'
- });
複製代碼
使用特效 預設情況下,外掛等待影象完全載入後呼叫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
- });
複製代碼
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援!
|