LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

请立即放弃使用Gif动图、CSS动画、SVG动画!最新的动画方案Lottie已经确定!

admin
2025年6月2日 7:1 本文热度 272

随着网页效果越来越绚丽,页面的动效也越来越复杂,各种动画方案层出不穷。

目前常规的几种动画方案比如「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