91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

請(qǐng)立即放棄使用Gif動(dòng)圖、CSS動(dòng)畫(huà)、SVG動(dòng)畫(huà)!最新的動(dòng)畫(huà)方案Lottie已經(jīng)確定!

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

隨著網(wǎng)頁(yè)效果越來(lái)越絢麗,頁(yè)面的動(dòng)效也越來(lái)越復(fù)雜,各種動(dòng)畫(huà)方案層出不窮。

目前常規(guī)的幾種動(dòng)畫(huà)方案比如「Gif動(dòng)圖、CSS3動(dòng)畫(huà)、SVG動(dòng)畫(huà)、Canvas動(dòng)畫(huà)各有利弊」。

比如說(shuō)Gif動(dòng)圖,包含大量顏色或長(zhǎng)時(shí)間動(dòng)畫(huà)的Gif圖片是相當(dāng)「大」的,在系統(tǒng)中加載速度非常慢。并且GIF只支持256色,可能導(dǎo)致圖像「失真」或者不清晰。

Lottie動(dòng)畫(huà)

Lottie 是一種基于 「JSON」 的輕量級(jí)動(dòng)畫(huà)格式,它由 Airbnb 開(kāi)發(fā)并開(kāi)源,專(zhuān)門(mén)用于在網(wǎng)頁(yè)和移動(dòng)應(yīng)用中高效地渲染高質(zhì)量的矢量動(dòng)畫(huà)。

簡(jiǎn)單總結(jié)一下Lottie動(dòng)畫(huà)的優(yōu)點(diǎn)大概是:

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

對(duì)比

實(shí)現(xiàn)方式
優(yōu)點(diǎn)
缺點(diǎn)
適合場(chǎng)景
CSS 動(dòng)畫(huà)
簡(jiǎn)單易用、性能好、兼容性佳
功能有限、不適合復(fù)雜動(dòng)畫(huà)
微交互動(dòng)畫(huà)、按鈕 hover 效果
JavaScript / GSAP / Anime.js
靈活、可交互、適合復(fù)雜邏輯
代碼量大、維護(hù)成本高
高度定制化動(dòng)畫(huà)
SVG 動(dòng)畫(huà)
矢量清晰、可腳本控制
手動(dòng)編寫(xiě)復(fù)雜、工具鏈不成熟
圖標(biāo)、簡(jiǎn)單圖形動(dòng)畫(huà)
Canvas / WebGL
強(qiáng)大的圖形處理能力
開(kāi)發(fā)難度大、不利于響應(yīng)式
游戲、數(shù)據(jù)可視化
GIF 動(dòng)圖
簡(jiǎn)單、兼容性極好
體積大、質(zhì)量差、不可控
快速展示簡(jiǎn)單動(dòng)畫(huà)
Lottie
高質(zhì)量、小巧、易集成、跨平臺(tái)
AE 依賴(lài)、功能限制
UI 交互動(dòng)畫(huà)、加載動(dòng)畫(huà)、引導(dǎo)頁(yè)動(dòng)畫(huà)

實(shí)戰(zhàn)

簡(jiǎn)單寫(xiě)一個(gè)Lottie動(dòng)畫(huà)在Vue中的實(shí)現(xiàn)(需要使用 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>

優(yōu)化

在項(xiàng)目中使用 「Lottie 動(dòng)畫(huà)」 時(shí),雖然 Lottie 本身具有體積小、渲染高效等優(yōu)點(diǎn),但如果動(dòng)畫(huà)文件較多或較大,仍可能對(duì)頁(yè)面加載速度和性能產(chǎn)生影響。

?

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

?

優(yōu)化基本上有以下幾種方案:

「按需加載」

實(shí)現(xiàn)方式

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

  observer.observe(this.$el);
}

廣告

請(qǐng)?jiān)谖⑿趴蛻?hù)端打開(kāi)

代碼英雄程序員的逆襲征途
都市/職場(chǎng) 6集

「預(yù)加載關(guān)鍵動(dòng)畫(huà)」

對(duì)于首頁(yè)或用戶(hù)首次訪問(wèn)必須展示的關(guān)鍵動(dòng)畫(huà),提前進(jìn)行異步加載,但延遲播放。

實(shí)現(xiàn)方式

  • 在 App 初始化階段就通過(guò) fetch() 或 import() 加載這些動(dòng)畫(huà)數(shù)據(jù)。
  • 存儲(chǔ)在 Vuex 或全局狀態(tài)中,避免重復(fù)請(qǐng)求。
async mounted() {
  const response = await fetch('/animations/home-hero.json');
  this.$store.commit('setHeroAnimation'await response.json());
}

「壓縮JSON文件」

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

可以考慮使用LottieFiles Optimizer、lottie-minify進(jìn)行壓縮。

實(shí)現(xiàn)方式

npx lottie-minify animation.json > optimized.json

「CDN托管」

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

「降低動(dòng)畫(huà)播放質(zhì)量」

在低端設(shè)備或慢速網(wǎng)絡(luò)下,降低動(dòng)畫(huà)幀率或簡(jiǎn)化動(dòng)畫(huà)效果,以提升性能。

實(shí)現(xiàn)方式

  • 根據(jù)設(shè)備性能設(shè)置不同動(dòng)畫(huà)版本(低配版 / 高配版)
  • 或者動(dòng)態(tài)調(diào)整 animationSpeed
this.anim.setSpeed(0.5); // 降低播放速度,節(jié)省性能


閱讀原文:原文鏈接


該文章在 2025/6/2 13:01:45 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品尤物 | 国产95在线 | 国产在线视频第一页 | 国产xxxx视频 | 无码大尺度岛国 | 区二区三区在线观看 | 精品在线| www黄在线观看 | 午夜成人看片日韩 | 国产日韩欧美二区 | 国产亚洲一区二在 | 中文字幕亚洲第一 | 午夜视频在线瓜伦 | 国产人妖一区=区 | 日韩欧美另类精品 | 午夜福利影视大全 | 精品国产品香蕉在 | 国产情侣自拍网站 | 区三区日韩精品 | 日韩性爱官方网站 | 区一区二区三 | 日韩欧美午夜视频 | 中文字幕无线免费 | 91性爱| 精品午夜国产福 | 乱伦中字网站 | 成人精品在线 | 国产一区二区免费 | 午夜久在线播放91 | 欧美亚洲日本韩国 | 国产黄大片 | 日韩精品一线二线 | 国产小比孩网站 | 欧美综合亚洲日 | 97超级碰| 精品免费观看 | 国产自产精品一区 | 国产精品二区亚洲 | 国产精品区二 | 乱子伦一级在线现看 | 91福利免费一分钟 |