首頁 web前端 css教學 CSS屬性實作響應式圖片延遲載入的方法

CSS屬性實作響應式圖片延遲載入的方法

Nov 18, 2023 am 08:12 AM
回應式 延遲載入 css屬性

CSS屬性實作響應式圖片延遲載入的方法

CSS屬性實作響應式圖片延遲載入的方法

在網頁開發中,經常會遇到需要載入大量圖片的情況,特別是在行動裝置上。為了提高頁面的載入速度和使用者體驗,延遲載入(lazy loading)圖片成為一種常見的最佳化方法。

延遲載入是指在頁面載入時,只載入可見區域的圖像,而不載入整個頁面上的所有圖像。這樣可以大幅減少初始載入所需的時間,並且可以避免不必要的頻寬浪費。

在本文中,我們將介紹使用CSS屬性實作響應式圖片延遲載入的方法,這種方法可以適用於各種螢幕尺寸和裝置。

首先,我們需要在HTML中定義需要延遲載入的映像。這裡我們使用<img class="lazy-image lazy" src="/static/imghw/default1.png" data-src="image.jpg" alt="CSS屬性實作響應式圖片延遲載入的方法" >元素,並設定一個自訂的屬性data-src來儲存影像的實際URL。

<img class="lazy-image lazy" src="/static/imghw/default1.png" data-src="image.jpg" data- alt="Image">
登入後複製

接下來,我們需要寫CSS樣式來隱藏初始的圖像,並透過使用background-size屬性來設定圖像的背景圖片。

.lazy-image {
  background-image: url(placeholder.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
登入後複製

在上面的程式碼中,placeholder.jpg是一個佔位圖像,用於在實際圖像載入完成之前顯示。

然後,我們使用CSS屬性@media來針對不同的螢幕尺寸定義不同的樣式。

/* 对于大屏幕设备,立即加载图像 */
@media screen and (min-width: 1024px) {
  .lazy-image {
    background-image: none;
  }
}

/* 对于小屏幕设备,延迟加载图像 */
@media screen and (max-width: 1023px) {
  .lazy-image {
    visibility: hidden;
  }
  
  .lazy-image[data-src] {
    visibility: visible;
  }
}
登入後複製

在上述程式碼中,我們使用@media#指令將螢幕寬度分成兩個範圍:大於等於1024px和小於1024px。對於大螢幕設備,我們立即載入圖片,將background-image設定為none。對於小螢幕設備,我們將.lazy-imagevisibility屬性設為hidden,同時為帶有data-src屬性的.lazy-image元素設定visibility屬性為visible,這樣就可以實作延遲載入影像。

最後,我們需要使用JavaScript來實現映像的實際載入。

document.addEventListener("DOMContentLoaded", function() {
  const lazyImages = document.querySelectorAll(".lazy-image");

  const lazyLoad = function() {
    lazyImages.forEach(function(img) {
      if (img.getBoundingClientRect().top <= window.innerHeight && img.hasAttribute("data-src")) {
        img.setAttribute("src", img.getAttribute("data-src"));
        img.removeAttribute("data-src");
      }
    });
  };

  window.addEventListener("scroll", lazyLoad);
  window.addEventListener("resize", lazyLoad);
  window.addEventListener("orientationchange", lazyLoad);
});
登入後複製

上述程式碼中,我們使用document.querySelectorAll取得所有帶有.lazy-image類別的元素,並定義一個lazyLoad函數來判斷影像是否在可見區域內,如果是則載入影像。

最後,我們將lazyLoad函數綁定到瀏覽器滾動、視窗大小改變和螢幕方向改變事件上,以便在頁面滾動或改變大小時觸發載入函數。

以上就是使用CSS屬性實作響應式圖片延遲載入的方法及對應的程式碼範例。透過這種方法,我們可以優化網頁載入速度,提升使用者體驗,並避免不必要的頻寬浪費。

以上是CSS屬性實作響應式圖片延遲載入的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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)

Spring Data JPA 的架構和工作原理是什麼? Spring Data JPA 的架構和工作原理是什麼? Apr 17, 2024 pm 02:48 PM

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

groove在css中是什麼意思 groove在css中是什麼意思 Apr 28, 2024 pm 04:12 PM

在CSS中,groove表示一種邊框樣式,創造凹槽狀效果。具體應用如下:使用CSS屬性border-style: groove;凹槽狀邊框具有凹陷的內側邊緣、凸起的外部邊緣和陰影效果。

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

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

Angular元件及其顯示屬性:了解非block預設值 Angular元件及其顯示屬性:了解非block預設值 Mar 15, 2024 pm 04:51 PM

Angular框架中元件的預設顯示行為不是區塊級元素。這種設計選擇促進了元件樣式的封裝,並鼓勵開發人員有意識地定義每個元件的顯示方式。透過明確設定CSS屬性 display,Angular組件的顯示可以完全控制,從而實現所需的佈局和響應能力。

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

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

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查詢模式;使用遊標,以區塊的方式檢索海量資料;使用索引,提高特定查詢的效能。

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

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

See all articles