在 Vue 3 中使用 Lottie 動畫:實現一個加載動畫

在現代前端開發中,動畫是提升用戶體驗的重要元素之一。Lottie 是一個流行的動畫庫,它允許我們使用 JSON 文件來渲染高質量的動畫。本文將介紹如何在 Vue 3 項目中集成 Lottie 動畫,并實現一個加載動畫效果。

如果對你有幫助請幫忙點個👍

1. 什么是 Lottie?

Lottie 是 Airbnb 開源的一個動畫庫,它可以將 After Effects 動畫導出為 JSON 文件,并在 Web、iOS、Android 等平臺上渲染。Lottie 的優勢在于:

  • 輕量級:動畫以 JSON 文件形式存儲,文件體積小。

  • 高質量:支持復雜的矢量動畫,渲染效果優秀。

  • 跨平臺:支持 Web、移動端等多個平臺。

2. 在 Vue 3 中集成 Lottie

2.1 安裝依賴

首先,我們需要安裝?vue3-lottie?插件,它是 Vue 3 的 Lottie 動畫組件封裝。

npm install vue3-lottie

2.2 引入 Lottie 組件

在 Vue 組件中,我們可以通過以下方式引入 Lottie 組件:

<template><div v-if="visible" class="lottie-loader"><Vue3Lottie :animationData="AstronautJSON" :height="400" :width="400" /></div>
</template><script setup lang="ts">
import { inject, ref } from 'vue';
import { Vue3Lottie } from 'vue3-lottie';
import AstronautJSON from './Loading.json';// 使用 inject 獲取 visible
const visible = inject('visible', ref(false));
</script>

2.3 加載動畫 JSON 文件

Lottie 動畫需要一個 JSON 文件作為數據源。你可以從?LottieFiles?下載免費的動畫 JSON 文件,或者使用設計工具(如 After Effects)導出動畫。

在代碼中,我們通過?import?引入 JSON 文件:

import AstronautJSON from './Loading.json';

2.4 控制動畫顯示

我們使用?inject?從父組件中獲取?visible?的值,用于控制動畫的顯示和隱藏。visible?是一個?ref?類型的布爾值,當它為?true?時,動畫會顯示。

const visible = inject('visible', ref(false));

2.5 樣式設計

為了讓動畫居中顯示并覆蓋整個頁面,我們添加了一些 CSS 樣式:

.lottie-loader {position: absolute; /* 絕對定位 */top: 0;left: 0;right: 0;bottom: 0;display: flex;justify-content: center;align-items: center;background-color: rgba(255, 255, 255, 0.8); /* 半透明背景 */z-index: 9999; /* 確保在其他內容之上 */
}

3. 完整代碼

以下是完整的 Vue 組件代碼:

<template><div v-if="visible" class="lottie-loader"><Vue3Lottie :animationData="AstronautJSON" :height="400" :width="400" /></div>
</template><script setup lang="ts">
import { inject, ref } from 'vue';
import { Vue3Lottie } from 'vue3-lottie';
import AstronautJSON from './Loading.json';// 使用 inject 獲取 visible
const visible = inject('visible', ref(false));
</script><style scoped>
.lottie-loader {position: absolute; /* 絕對定位 */top: 0;left: 0;right: 0;bottom: 0;display: flex;justify-content: center;align-items: center;background-color: rgba(255, 255, 255, 0.8); /* 半透明背景 */z-index: 9999; /* 確保在其他內容之上 */
}
</style>

4. 使用場景

這個加載動畫可以用于以下場景:

  • 頁面加載:在頁面加載數據時顯示動畫,提升用戶體驗。

  • 表單提交:在表單提交過程中顯示動畫,避免用戶重復操作。

  • 異步操作:在異步操作(如 API 請求)期間顯示動畫。

5. 總結

通過?vue3-lottie,我們可以輕松地在 Vue 3 項目中集成 Lottie 動畫。本文實現了一個簡單的加載動畫,并解釋了代碼的實現細節。希望這篇文章能幫助你在項目中更好地使用 Lottie 動畫,提升用戶體驗。


額外提示

  • 如果你需要更復雜的動畫控制(如播放、暫停、循環等),可以查閱?vue3-lottie?的官方文檔,了解更多 API。

  • 你可以在?LottieFiles?上找到更多免費的動畫資源。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70261.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70261.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70261.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Spring】Spring配置文件

目錄 ?什么是配置文件&#xff1f; 配置文件的作用 SpringBoot配置文件 配置文件格式 配置文件的優先級 properties配置文件說明 properties基本語法 讀取配置文件 properties缺點 yml配置文件說明 yml基本語法 使用yml連接數據庫 yml配置不同數據類型及null 注意…

藍橋杯篇---實時時鐘 DS1302

文章目錄 前言特點簡介1.低功耗2.時鐘/日歷功能3.32字節的額外RAM4.串行接口 DS1302 引腳說明1.VCC12.VCC23.GND4.CE5.I/O6.SCLK DS1302 寄存器1.秒寄存器2.分鐘寄存器3.小時寄存器4.日寄存器5.月寄存器6.星期寄存器7.年寄存器8.控制寄存器 DS1302 與 IAP25F2K61S2 的連接1.CE連…

Dubbo:高效的分布式服務框架

引言 在當今互聯網應用的快速發展中&#xff0c;微服務架構已經成為一種主流的設計模式&#xff0c;它將一個大型單體應用拆分成多個小型、松耦合的服務。Dubbo 作為一款由阿里巴巴開源的 RPC 服務框架&#xff0c;專門為解決分布式系統中服務通信和治理的問題而設計。本文將深…

Visual Studio Code使用ai大模型編成

1、在Visual Studio Code搜索安裝roo code 2、去https://openrouter.ai/settings/keys官網申請個免費的配置使用

【Javascript Day18】

目錄 標簽事件綁定的屬性參數 阻止默認行為 dialog的實現及組織冒泡&#xff08;捕獲&#xff09;傳遞 基于冒泡的事件委托 鍵盤事件的事件源對象信息 JS的自動觸發操作 標簽事件綁定的屬性參數 <!-- 標簽上的事件綁定&#xff0c;事件源對象通過 關鍵字event傳遞 --…

解鎖機器學習核心算法 | 支持向量機:機器學習中的分類利刃

一、引言 在機器學習的龐大算法體系中&#xff0c;有十種算法被廣泛認為是最具代表性和實用性的&#xff0c;它們猶如機器學習領域的 “十大神器”&#xff0c;各自發揮著獨特的作用。這十大算法包括線性回歸、邏輯回歸、決策樹、隨機森林、K - 近鄰算法、K - 平均算法、支持向…

玩客云 IP查找

1.玩客云使用靜態IP在不同網段路由器下不能使用&#xff0c;動態不好找IP地址 1.1使用python3 實現自動獲取發送 import requests import os import socket# 從環境變量獲取 PushPlus 的 token 和群組編碼 PUSH_PLUS_TOKEN os.getenv("PUSH_PLUS_TOKEN") PUSH_PLU…

Linux(Centos 7.6)命令詳解:cat

1.命令作用 將文件或標準輸入連接到標準輸出(Concatenate FILE(s), or standard input, to standard output)&#xff0c; 即將文件內容輸出到屏幕上&#xff0c;或者將多個文件合并成一個文件。 2.命令語法 Usage: cat [OPTION]... [FILE]... 3.參數詳解 OPTION: -A, -…

深入解析Qt事件循環

在Qt開發中&#xff0c;QApplication::exec()這行代碼是每個開發者都熟悉的“魔法咒語”。為什么GUI程序必須調用它才能響應操作&#xff1f;為何耗時操作會導致界面凍結&#xff1f;本文將以事件循環為核心&#xff0c;揭示Qt高效運轉的底層邏輯&#xff0c;探討其設計哲學與最…

Hive增量遷移方案與實操PB級

客戶一共1PB數據&#xff0c;每天新增10T&#xff0c;有些表只保留3天。 需要客戶提供&#xff1a; a.tbl_size(大小GB) a.last_mtime(最新更新時間) a.tbl_ttl(保留時間) b.last_part_dt(分區值) b.last_part_size(最新分區大小) t_day(表更新規律,t幾) 因為目前…

未來游戲:當人工智能重構虛擬世界的底層邏輯

未來游戲&#xff1a;當人工智能重構虛擬世界的底層邏輯 在《賽博朋克2077》夜之城的霓虹燈下&#xff0c;玩家或許已經注意到酒吧里NPC開始出現微表情變化&#xff1b;在《艾爾登法環》的開放世界中&#xff0c;敵人的戰術包抄逐漸顯露出類人智慧。這些細節預示著游戲產業正站…

React中如何處理高階組件中的錯誤

在 React 高階組件中處理錯誤是確保應用程序健壯性和穩定性的重要環節。以下是一些處理高階組件中錯誤的常見方法&#xff1a; 1. 捕獲渲染時的錯誤 在高階組件中&#xff0c;渲染過程可能會因為各種原因&#xff08;如 props 數據格式錯誤、組件內部邏輯異常等&#xff09;拋…

deepseek-v3在阿里云和騰訊云的使用中的差異

隨著deepseek在各大云商上線&#xff0c;試用了下阿里云和騰訊云的deepseek服務&#xff0c;在回答經典數學問題9.9和9.11誰大時&#xff0c;發現還是有差異的。將相關的問題記錄如下。 1、問題表現 筆者使用的openai的官方sdk go-openai。 因本文中測驗主要使用阿里云和騰訊…

寶塔面板開始ssl后,使用域名訪問不了后臺管理

寶塔面板后臺開啟ssl訪問后&#xff0c;用的證書是其他第三方頒發的證書 再使用 域名/xxx 的形式&#xff1a;https://域名:xxx/xxx 訪問后臺&#xff0c;結果出現如下&#xff0c;不管使用 http 還是 https 的路徑訪問都進不后臺管理 這個時候可以使用 https://ip/xxx 的方式來…

開發板部署|RK3588部署DeepSeek-1.5B

前言 在 RK3588 上部署大模型可以顯著提升計算效率、節能、加速推理過程&#xff0c;并實現本地化推理&#xff0c;適合各種邊緣計算應用&#xff0c;如智能設備、自動駕駛、工業機器人、健康監測等領域。此外&#xff0c;RK3588 配備了強大的 NPU&#xff08;神經網絡處理單元…

UDP與TCP

用UDP一定比用TCP快嗎&#xff1f; 假設我們需要在a電腦的進程發一段數據到b電腦的進程我們可以選擇使用TCP或UDP協議進行通信。 對于TCP這樣的可靠性協議每次消息發出后都能明確知道對方有沒有收到&#xff0c;就像打電話一樣&#xff0c;只要“喂喂"兩下對方就能回你個…

【ELK】【Elasticsearch】數據查詢方式

1. 簡單查詢&#xff08;URI Search&#xff09; 通過 URL 參數直接進行查詢&#xff0c;適合簡單的搜索場景。 示例&#xff1a; bash 復制 GET /index_name/_search?qfield_name:search_value 說明&#xff1a; index_name&#xff1a;索引名稱。 field_name&#xf…

軟件測試:定義和實質

軟件缺陷的定義&#xff1a; 未實現說明書要求的功能出現了說明書指明不應出現的錯誤實現了說明書未提到的功能未實現說明書沒有明確提出但應該實現的目標軟件難以理解&#xff0c;不易使用&#xff0c;運行緩慢 或者從測試員客戶會認為不好的。 軟件缺陷的原因&#xff1a; …

【軟考】【2025年系統分析師拿證之路】【啃書】第十一章 軟件需求工程(十二)

目錄 需求的層次需求工程的主要活動需求的記錄技術需求分析需求定義 需求的層次 業務需求用戶需求系統需求 需求工程的主要活動 需求獲取需求分析形成需求規格需求確認和驗證需求管理 需求的記錄技術 任務卡片場景說明用戶故事 需求分析 方法&#xff1a; 結構化分析&a…

計算機網絡原理試題六

一、單項選擇 1.(單選題,5分)IP地址中網絡號的作用有 A.指定了設備能夠進行通信的網絡 B.指定了主機所屬的網絡 C.指定了被尋址的子網中的某個節點 D.標志了網絡中的主機 答案:B 2.(單選題,5分)關于IP主機地址,下列說法正確的是 A.網段部分不可以全1也不可以全0 B.主機部分可…