VueLazyload實現圖片懶載入

一、VueLazyload簡介

VueLazyload是一個Vue.js的插件,它可以實現圖片懶載入,即使頁面上有很多圖片,也不會在初次渲染時全部載入,只會在圖片進入可視區域時再進行載入,這樣可以減輕頁面的載入時間,提升用戶體驗。

VueLazyload支持多種loading效果,以及滾動判斷方法,可以幫助我們完美的實現圖片的懶載入。

二、安裝配置VueLazyload

在使用VueLazyload之前,需要先引入Vue.js和VueLazyload插件。

// 引入Vue.js
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

// 引入VueLazyload插件
<script src="//unpkg.com/vue-lazyload/vue-lazyload.js"></script>

然後,在Vue實例中使用Vue.use()方法,將VueLazyload插件引入到Vue實例中。

Vue.use(VueLazyload)

最後,在需要進行圖片懶載入的<img>標籤中使用v-lazy指令,並將圖片src屬性指向loading效果的圖片。如:

<img v-lazy="imageUrl" src="loading.gif">

三、滾動判斷方法

VueLazyload默認使用window作為滾動容器,如果需要實現在某個容器中進行圖片懶載入,需要使用Vue.use()方法時加入一個對象,對象中就可以指定設定的滾動容器以及觸發懶載入的事件。如下:

Vue.use(VueLazyload,{
    preLoad: 1.3,
    error: 'dist/error.png',
    loading: 'dist/loading.gif',
    attempt: 1,
    listenEvents: [ 'scroll' ],
    observer: true,
    container: document.querySelector(『#scrollArea』)
})

其中,container指定滾動容器,listenEvents指定觸發懶載入的事件。

四、多種loading效果

VueLazyload提供了多種loading效果,可以根據自己的需求進行選擇,比如Spinner、Fade等。如下:

Vue.use(VueLazyload, {
  loading: '/path/to/loading.gif',
  error: '/path/to/error.png',
  attempt: 3,
  lazyComponent: true,
  observer: true,
  preLoad: 1.3,
  dispatchEvent: true,
  throttleWait: 200,
  listenEvents: [ 'scroll' ],
  silent: true,
  scale: 1.3,
  adapter: {
    loaded ({ bindType, el, naturalHeight, naturalWidth, $parent, src, loading, error, Init }) {},
    loading (listender, Init) {},
    error (listender, Init) {}
  },
  filter: {
    webp(listener, options) {}
  },
  plugin: []
})

五、可滾動容器內的圖片懶載入

如果需要實現一個div內圖片的懶載入,只需在該div容器上加入一個v-lazy-container指令,指定它是滾動容器,然後在該容器內的每個image上添加v-lazy指令即可。如下:

<div v-lazy-container="{ selector: 'img' }">
  <img v-for="src in arr" v-lazy="src">
</div>

六、使用intersectionObserver(交叉觀察器)

交叉觀察器是現代瀏覽器中的新api,它可以監控到目標區域內元素的變化情況。我們可以在VueLazyload中將其開啟,讓其代替原先使用的scroll事件。如下:

Vue.use(VueLazyload, {
  observer: true,
  observerOptions: {
    rootMargin: '0px',
    threshold: 0.1
  }
})

然後,我們就可以在項目中愉快的使用VueLazyload啦!

原創文章,作者:SWOI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146833.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SWOI的頭像SWOI
上一篇 2024-10-31 15:32
下一篇 2024-10-31 15:32

相關推薦

  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • QML 動態載入實踐

    探討 QML 框架下動態載入實現的方法和技巧。 一、實現動態載入的方法 QML 支持從 JavaScript 中動態指定需要載入的 QML 組件,並放置到運行時指定的位置。這種技術…

    編程 2025-04-29
  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網路應用中流…

    編程 2025-04-29
  • Python如何抓取圖片數據

    Python是一門強大的編程語言,能夠輕鬆地進行各種數據抓取與處理。抓取圖片數據是一個非常常見的需求。在這篇文章中,我們將從多個方面介紹Python如何抓取圖片數據。 一、使用ur…

    編程 2025-04-29
  • Avue中如何按照後端返回的鏈接顯示圖片

    Avue是一款基於Vue.js、Element-ui等技術棧的可視化開發框架,能夠輕鬆搭建前端頁面。在開發中,我們使用到的圖片通常都是存儲在後端伺服器上的,那麼如何使用Avue來展…

    編程 2025-04-28
  • Python利用Image加圖片的方法

    在Python中,利用Image庫可以快速處理圖片,並加入需要的圖片,本文將從多個方面詳細闡述這個操作。 一、Image庫的安裝和基礎操作 首先,我們需要在Python中安裝Ima…

    編程 2025-04-28
  • 使用CKSlide實現圖片輪播

    CKSlide是一個基於jQuery的插件,可以方便地為網頁添加幻燈片和圖片輪播效果。使用CKSlide可以讓網站更加生動、活潑,給用戶帶來更好的體驗。 一、CKSlide基本用法…

    編程 2025-04-28

發表回復

登錄後才能評論