首頁 > web前端 > js教程 > jQuery延遲載入圖片外掛程式Lazy Load使用指南_jquery

jQuery延遲載入圖片外掛程式Lazy Load使用指南_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-05-16 16:07:44
原創
1610 人瀏覽過

Lazy Load 是一個用JavaScript 編寫的jQuery 插件. 它可以延遲加載長頁面中的圖片. 在瀏覽器可視區域外的圖片不會被載入, 直到用戶將頁面滾動到它們所在的位置.這與圖片預先載入的處理方式正好是相反的.

在包含許多大圖片長頁中延遲載入圖片可以加快頁面載入速度. 瀏覽器將會在載入可見圖片之後即進入就緒狀態. 在某些情況下還可以幫助降低伺服器負擔.

怎麼使用?

Lazy Load 依賴 jQuery. 請將下列程式碼加入頁面 head 區域:

複製程式碼 程式碼如下:



你必須修改HTML 程式碼. 在src 屬性中設定展位符號圖片, demo 頁面使用1×1 像素灰色GIF 圖片. 並且需要將真實圖片的URL 設定到data-original 屬性. 這裡可以定義特定的class 以獲得需要延遲載入的圖片物件. 透過這種方法你可以簡單地控制插件綁定.

複製程式碼 程式碼如下:

jQuery延遲載入圖片外掛程式Lazy Load使用指南_jquery

處理圖片的程式碼如下.

複製程式碼 程式碼如下:

$("img.lazy").lazyload();

這將使所有 class 為 lazy 的圖片將被延遲加載. 可以參考基本選項 demo

設定敏感度

幾乎所有瀏覽器的JavaScript 都是啟動的. 然而可能你仍希望能在不支援JavaScript 的客戶端展示真實圖片. 當瀏覽器不支援JavaScript 時優雅降級, 你可以將真實的圖片片段在寫

複製程式碼 程式碼如下:

jQuery延遲載入圖片外掛程式Lazy Load使用指南_jquery

可以透過 CSS 隱藏佔位符.

複製程式碼 程式碼如下:

.lazy {
  display: none;
}

在支援 JavaScript 的瀏覽器中, 你必須在 DOM ready 時將佔位符顯示出來, 這可以在插件初始化的同時完成.

複製程式碼 程式碼如下:

$("img.lazy").show().lazyload();

這些都是可選的, 但如果你希望插件平穩降級這些都是應該做的.

預設圖片會出現在螢幕時載入. 如果你想提前載入圖片, 可以設定 threshold 選項, 設定 threshold 為 200 令圖片在距離畫面 200 像素時提前載入.

複製程式碼 程式碼如下:

$("img.lazy").lazyload({ threshold : 200 });

佔位圖片

你也可以設定一個佔位圖片並定義事件來觸發載入動作. 這時需要為佔位圖片設定一個URL 位址. 透明, 灰色和白色的1×1 像素的圖片已經包含在插件裡面.

事件觸發載入

事件可以是任何jQuery 時間, 如: click 和mouseover. 你也可以使用自訂的事件, 如: sporty 和foobar. 預設情況下處於等待狀態, 直到使用者捲動到視窗上圖片所在位置. 在灰色佔位圖片被點擊之前阻止載入圖片, 你可以這樣做:

複製程式碼 程式碼如下:

$("img").lazyload({
    placeholder : "img/grey.gif",
    event : "click"
});

使用特效

當圖片完全加載的時候, 插件預設地使用show() 方法來將圖顯示出來. 其實你可以使用任何你想用的特效來處理. 下面的程式碼使用FadeIn 效果. 這是效果示範頁面.

複製程式碼 程式碼如下:

$("img.lazy").lazyload({
    effect : "fadeIn"
});

圖片在容器裡面

你可以將插件用在可滾動容器的圖片上, 例如帶滾動條的DIV 元素. 你要做的只是將容器定義為jQuery 對象並作為參數傳到初始化方法裡面. 這是水平滾動演示頁面和垂直滾動的演示頁.

複製程式碼 程式碼如下:

#container {
    height: 600px;
    overflow: scroll;
}
$("img.lazy").lazyload({        
     container: $("#container")
});

當圖片不順序排列

滾動頁面的時候, Lazy Load 會循環為加載的圖片. 在循環中檢測圖片是否在可視區域內. 默認情況下在找到第一張不在可見區域的圖片時停止循環. 圖片被認為是流式分佈的, 圖片在頁面中的次序和HTML 代碼中次序相同. 但是在一些佈局中, 這樣的假​​設是不成立的. 不過你可以通過failurelimit 選項來控制加載行為.

複製程式碼 程式碼如下:

$("img.lazy").lazyload({
    failure_limit : 10
});

將 failurelimit 設為 10 令插件找到 10 個不在可見區域的圖片是才停止搜尋. 如果你有一個猥瑣的佈局, 請把這個參數設高一點.

延遲載入圖片

Lazy Load 插件的一個不完整的功能, 但是這也能用來實現圖片的延遲加載. 下面的代碼實現了頁面加載完成後再加載. 頁面加載完成5 秒後, 指定區域內的圖片會自動進行載入. 這是延遲載入示範頁面.

複製程式碼 程式碼如下:

$(function() {         
    $("img:below-the-fold").lazyload({
        event : "sporty"
    }); }); $(window).bind("load", function() {
    var timeout = setTimeout(function() {$("img.lazy").trigger("sporty")}, 5000); });

載入隱藏的圖片

可能在你的頁面上埋藏可很多隱藏的圖片. 例如插件用在對列表的篩選, 你可以不斷地修改​​列表中各條目的顯示狀態. 為了提升性能, Lazy Load 默認忽略了隱藏圖片.如果你想要載入隱藏圖片, 請將skip_invisible 設為false

複製程式碼 程式碼如下:

$("img.lazy").lazyload({
    skip_invisible : false
});

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

この記事を友達と共有したり、コメントを残してください。皆様のご支援に心より感謝申し上げます。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
引入jQuery 文件
來自於 1970-01-01 08:00:00
0
0
0
jquery筆記哪裡有下?
來自於 1970-01-01 08:00:00
0
0
0
javascript - vue+webpack怎麼引入jquery
來自於 1970-01-01 08:00:00
0
0
0
php+jquery的問題
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板