LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

請立即放棄使用Gif動圖、CSS動畫、SVG動畫!最新的動畫方案Lottie已經確定!

admin
2025年6月2日 7:1 本文熱度 509

隨著網頁效果越來越絢麗,頁面的動效也越來越復雜,各種動畫方案層出不窮。

目前常規的幾種動畫方案比如「Gif動圖、CSS3動畫、SVG動畫、Canvas動畫各有利弊」

比如說Gif動圖,包含大量顏色或長時間動畫的Gif圖片是相當「大」的,在系統中加載速度非常慢。并且GIF只支持256色,可能導致圖像「失真」或者不清晰。

Lottie動畫

Lottie 是一種基于 「JSON」 的輕量級動畫格式,它由 Airbnb 開發并開源,專門用于在網頁和移動應用中高效地渲染高質量的矢量動畫。

簡單總結一下Lottie動畫的優點大概是:

  1. 輕量級:Lottie 動畫是基于 JSON 文件描述的矢量動畫,體積通常遠小于Gif。并且由于是矢量格式,Lottie 動畫可以無損縮放,適合響應式設計。
  2. 高性能:Lottie 使用 SVG 或 Canvas 渲染,瀏覽器負擔小,動畫流暢,尤其適合移動端。并且不會占用大量內存或 CPU 資源。
  3. 開發效率高:動畫可以直接由AE導出(Bodymovin 插件),開發者無需過多調整。
  4. 交互好:可以通過 JavaScript 控制動畫播放、暫停、進度控制等,甚至支持與用戶行為聯動(如滾動觸發、點擊播放)。支持動態更改顏色、文本等屬性(需插件或定制)。
  5. 兼容性好:Lottie 提供了 Web、iOS、Android、React Native、Flutter 等多個平臺的官方 SDK 和社區支持。并且在各個平臺上的表現非常一致!

對比

實現方式
優點
缺點
適合場景
CSS 動畫
簡單易用、性能好、兼容性佳
功能有限、不適合復雜動畫
微交互動畫、按鈕 hover 效果
JavaScript / GSAP / Anime.js
靈活、可交互、適合復雜邏輯
代碼量大、維護成本高
高度定制化動畫
SVG 動畫
矢量清晰、可腳本控制
手動編寫復雜、工具鏈不成熟
圖標、簡單圖形動畫
Canvas / WebGL
強大的圖形處理能力
開發難度大、不利于響應式
游戲、數據可視化
GIF 動圖
簡單、兼容性極好
體積大、質量差、不可控
快速展示簡單動畫
Lottie
高質量、小巧、易集成、跨平臺
AE 依賴、功能限制
UI 交互動畫、加載動畫、引導頁動畫

實戰

簡單寫一個Lottie動畫在Vue中的實現(需要使用 lottie-web 或者 vue-lottie),具體代碼如下:

npm install vue-lottie --save
<template>
    <div class="wrap">
        <lottie v-if="isStart" :options="defaultOptions" :height="400" :width="400" />
    </div>
</template>

<script>
import Lottie from 'vue-lottie';
export default {
    components: {
        Lottie
    },
    data() {
        return {
            isStartfalse,
            animationDatanull,
        };
    },
    computed: {
        defaultOptions() {
            return {
                animationDatathis.animationData,
                looptrue,
                autoplaytrue
            };
        }
    },
    mounted() {
        fetch('/all.json')
            .then(response => response.json())
            .then(data => {
                this.animationData = data;
                this.isStart = true;
            });
    }
};
</script>

優化

在項目中使用 「Lottie 動畫」 時,雖然 Lottie 本身具有體積小、渲染高效等優點,但如果動畫文件較多或較大,仍可能對頁面加載速度和性能產生影響。

?

「省流」:“按需加載 + 壓縮 + 緩存” 是最核心的 Lottie 優化組合。

?

優化基本上有以下幾種方案:

「按需加載」

實現方式

  • 使用 IntersectionObserver 監聽元素是否進入視口。
  • 或者結合 Vue 的 v-if 控制組件的渲染時機。
mounted() {
  const observer = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
      this.loadAnimation(); // 加載 JSON 文件并觸發動畫
      observer.disconnect();
    }
  }, { threshold0.1 });

  observer.observe(this.$el);
}

廣告

請在微信客戶端打開

代碼英雄程序員的逆襲征途
都市/職場 6集

「預加載關鍵動畫」

對于首頁或用戶首次訪問必須展示的關鍵動畫,提前進行異步加載,但延遲播放。

實現方式

  • 在 App 初始化階段就通過 fetch() 或 import() 加載這些動畫數據。
  • 存儲在 Vuex 或全局狀態中,避免重復請求。
async mounted() {
  const response = await fetch('/animations/home-hero.json');
  this.$store.commit('setHeroAnimation'await response.json());
}

「壓縮JSON文件」

Lottie JSON 文件通常包含大量冗余信息(如注釋、未使用的圖層屬性),可以通過工具壓縮減小體積。

可以考慮使用LottieFiles Optimizer、lottie-minify進行壓縮。

實現方式

npx lottie-minify animation.json > optimized.json

「CDN托管」

將 JSON 文件上傳到 CDN,利用其CDN加速資源分發。

「降低動畫播放質量」

在低端設備或慢速網絡下,降低動畫幀率或簡化動畫效果,以提升性能。

實現方式

  • 根據設備性能設置不同動畫版本(低配版 / 高配版)
  • 或者動態調整 animationSpeed
this.anim.setSpeed(0.5); // 降低播放速度,節省性能


閱讀原文:原文鏈接


該文章在 2025/6/2 13:01:45 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
婷婷丁香亚洲综合国产 | 一本大道香蕉精品视频在线 | 中国一级特黄精品在线播放 | 思思国产91久久久久久 | 综合国产日韩欧美 | 亚洲第一页A∨在线 |