首頁 web前端 js教程 jquery外掛程式lazyload.js延遲載入圖片的使用方法_jquery

jquery外掛程式lazyload.js延遲載入圖片的使用方法_jquery

May 16, 2016 pm 04:59 PM
jquery插件 延遲載入

如果一個網頁很長並且有很多圖片的話,下載圖片就需要很多時間,那麼就會影響整個網頁的加載速度,而這款延遲加載插件,會通過你的滾動情況來加載你需要看的圖片,然後它才會從後台請求下載圖片,最後顯示出來。透過這個插件,可以在需要顯示圖片的時候,才下載圖片,從而可以減少伺服器的壓力,提高頁面載入速度。

Lazy Load 插件原理

修改目標img元素的src屬性為orginal屬性,從而中斷圖片的載入。偵測滾動狀態,然後把網頁視覺區域中的img的src屬性還原然後載入圖片,從而製造了一種緩衝載入的效果。程式碼引入方法:

複製程式碼 程式碼如下:



其實原因就在於在新版的瀏覽器中,即使我們刪除了Javascript控制的src屬性,瀏覽器還是會去載入這個圖片。

那我們該怎麼解決呢?其實也很簡單,需要直接修改HTML的結構,在img標籤中加入新的屬性,把src屬性的值指向佔位圖片,加入data-original屬性,讓其指向真正的圖像位址。如:

複製程式碼


當然,在上面的程式碼中我們把頁面內的所有圖片都延遲加載了,但有些時候我們並不希望這樣,因為有些圖片並不想然他們延遲加載,那麼我們可以這樣只需做:
如只緩衝載入類別main下的映像

複製程式碼

程式碼如下:$(".main img").lazyload({      placeholder : "images/grey.gif",
     effect      : "fadeIn"
});




載入掛載有lazy類別的圖片:

複製程式碼 程式碼如下:$("img.lazy").lazyload({
     placeholder : "images/grey.gif",
     effect      : "fadeIn"
});



其他的以此類推,適當做一下選擇器調整就行了。

lazyload.js 進階使用方法:

下面部分來自官方文檔,將官方文檔進行了一下簡單的翻譯。

更周全的做法

我們不得不思考這樣一個問題。我們定義了這樣一個結構,那麼網頁中,就不會載入來源圖像了。只有當 Javascript 執行,才會顯示這個來源圖像。如果使用者的瀏覽器不支援或使用者關掉了支援 Javascript 的選項,那麼我們的這個圖像就無法顯示出來。也就是說,如果沒有 Javascript 的支持,我們的圖像就無法顯示出來。

應對這個問題,我們需要引入noscript 標籤。大致思路如下:用 noscript 包含真實的圖像位置,當瀏覽器不支援 Javascript,直接顯示圖像。

複製程式碼 程式碼如下:

jquery外掛程式lazyload.js延遲載入圖片的使用方法_jquery

對現有影像,隱藏處理,使用 show()方法觸發顯示。

複製程式碼 程式碼如下:

.lazy { >}


這樣,如果瀏覽器不支援 Javascript,我們自訂的 img 就不會出現,而顯示 noscript 裡面的圖片。具體實作程式碼如下:

複製程式碼 程式碼如下:
$("img.lazy").show() .lazyload();


提前加載

預設的情況是,當你捲動到圖片位置的時候,插件開始載入。這樣,使用者可能首先看到的是一個空白圖像,然後再緩慢出現。如果你想在用戶滾動之前,提前加載這個圖像,你可以配置參數。

複製程式碼 程式碼如下:
$("img.lazy").lazyload({
    threshold : 200
});


threshold 這個參數,就是用來提前載入的。上面這個語句的意思是,當距離圖片還有200像素的時候,就開始載入圖片。

自訂觸發事件

預設的觸發事件,是滾動,當你滾動的時候,就會檢查然後加載。你可以使用event屬性,設定你自己的載入事件,之後你可以自訂觸發這個事件的條件,然後去載入圖片。

複製程式碼 程式碼如下:
$("img.lazy").lazyload({
    event : "click"
});


自訂顯示效果

預設的圖片實現效果,就是沒有效果,下載完成之後,直接顯示出來。這樣的使用者體驗並不好,你可以設定effect屬性,控制顯示圖片的效果。例如

複製程式碼 程式碼如下:
$("img.lazy").lazyload({
    effect : "fadeIn"
});


fadeIn的效果就是,改變圖片的透明度,漸現的方式出現。

把影像插入某個容器

大家如果使用智慧型手機的話,常常去應用網站下載應用,他們通常使用一個橫著的容器,放一些手機截圖。使用container屬性,能輕鬆在容器中實作緩衝載入。首先,我們要用css定義這個容器,然後用這個插件來載入。

複製程式碼 程式碼如下:
#container { height: 600proll;
$("img.lazy").lazyload({
    container: $("#container")
});


載入不可見圖片

有部分圖像是不可見的,我們對其加上類似 display:none;等屬性的圖像。預設的情況下,這個插件是不會載入隱藏的不可見圖像。如果我們需要用它來載入不可見圖像,我們需要將skip_invisible設定為false,程式碼如下:


複製程式碼 程式碼如下:
$("img.lazy").lazyload({
    skip_invisible : false
});


好了,這就是lazyload.js這款外掛的簡單介紹了。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
Spring Data JPA 的架構和工作原理是什麼? Spring Data JPA 的架構和工作原理是什麼? Apr 17, 2024 pm 02:48 PM

SpringDataJPA基於JPA架構,透過映射、ORM和事務管理與資料庫互動。其儲存庫提供CRUD操作,派生查詢簡化了資料庫存取。此外,它使用延遲加載,僅在必要時檢索數據,從而提高了效能。

Linux 動態連結與靜態連結原來是這麼回事? Linux 動態連結與靜態連結原來是這麼回事? Feb 05, 2024 pm 05:45 PM

老規矩,先提出幾個問題:為什麼要進行動態連結?如何進行動態連結?什麼是地址無關代碼技術?什麼是延遲綁定技術?如何在程式運行過程中進行明確連結?為什麼要進行動態連結?動態連結的出現是為了解決靜態連結的一些缺點:節約記憶體和磁碟空間:如下圖所示,Program1和Program2分別包含Program1.o和Program2.o兩個模組,他們都需要Lib.o模組。靜態連結情況下,兩個目標檔案都用到Lib.o這個模組,所以它們同時在連結輸出的可執行檔Program1和program2中有副本,同時執行

解碼Laravel效能瓶頸:優化技巧全面揭秘! 解碼Laravel效能瓶頸:優化技巧全面揭秘! Mar 06, 2024 pm 02:33 PM

解碼Laravel效能瓶頸:優化技巧全面揭秘! Laravel作為一個受歡迎的PHP框架,為開發者提供了豐富的功能和便利的開發體驗。然而,隨著專案規模增加和訪問量增加,我們可能會面臨效能瓶頸的挑戰。本文將深入探討Laravel效能最佳化的技巧,幫助開發者發現並解決潛在的效能問題。一、資料庫查詢優化使用Eloquent延遲載入在使用Eloquent查詢資料庫時,避免

Java JPA 效能優化秘技:讓你的應用程式飛起來 Java JPA 效能優化秘技:讓你的應用程式飛起來 Feb 19, 2024 pm 09:03 PM

文章關鍵字:JavaJPA效能最佳化ORM實體管理JavaJPA(JavaPersistanceapi)是一種物件關聯映射(ORM)框架,它允許你使用Java物件來操作資料庫中的資料。 JPA提供了與資料庫互動的統一API,讓你可以使用相同的程式碼存取不同資料庫。此外,JPA還支援懶加載、快取和髒資料偵測等特性,可以提高應用程式的效能。然而,如果使用不當,JPA效能可能會成為你應用程式的瓶頸。以下是一些常見的效能問題:N+1查詢問題:當你在應用程式中使用JPQL查詢時,可能會遇到N+1查詢問題。在這種

Hibernate 如何最佳化資料庫查詢效能? Hibernate 如何最佳化資料庫查詢效能? Apr 17, 2024 pm 03:00 PM

優化Hibernate查詢性能的技巧包括:使用延遲加載,推遲加載集合和關聯對象;使用批處理,組合更新、刪除或插入操作;使用二級緩存,將經常查詢的對象存儲在內存中;使用HQL外連接,檢索實體及其相關實體;最佳化查詢參數,避免SELECTN+1查詢模式;使用遊標,以區塊的方式檢索海量資料;使用索引,提高特定查詢的效能。

html圖片過大怎麼辦 html圖片過大怎麼辦 Apr 05, 2024 pm 12:24 PM

優化 HTML 圖片過大的方法有:優化圖片檔案大小:使用壓縮工具或圖片編輯軟體。使用媒體查詢:根據裝置動態調整影像大小。實作延遲載入:僅在影像進入可視區域時載入。使用 CDN:將影像分發到多個伺服器。使用圖像佔位符:在圖像載入時顯示佔位圖像。使用縮圖:顯示圖像的較小版本並在點擊後加載全尺寸圖像。

如何阻止iframe載入事件 如何阻止iframe載入事件 Feb 19, 2024 am 08:02 AM

如何防止iframe載入事件在網頁開發中,我們常常會使用iframe標籤來嵌入其他網頁或內容。預設情況下,當瀏覽器載入iframe時,會觸發載入事件。然而,在某些情況下,我們可能希望延遲載入iframe,或完全阻止載入事件。在本文中,我們將探討如何透過程式碼範例來實現這個目標。一、延遲載入iframe如果要延遲載入iframe,我們可以使用

Java JPA 開源專案推薦:為你的專案注入新的活力 Java JPA 開源專案推薦:為你的專案注入新的活力 Feb 20, 2024 am 09:09 AM

在Java程式設計領域,JPA(JavaPersistenceapi)作為一種流行的持久化框架,為開發者提供了對關係型資料庫進行操作的便捷方式。透過使用JPA,開發者可以輕鬆地將Java物件持久化到資料庫中,並從資料庫中檢索數據,從而大大提高了應用程式的開發效率和維護性。本文精心挑選了10個高品質的JavaJPA開源項目,涵蓋了各種不同的功能和應用場景,旨在為開發者提供更多的靈感和解決方案,協助打造更有效率和可靠的應用程式。這些項目包括:SpringDataJPA:springDataJPA是Spr

See all articles