不要问为什么  没有为什么。浮躁的7月首周。Keep Going And Stay Strong。


Lottie是一个IOS,Android和React Native库,可以实时渲染动画,动画被转化成JSON文件,节省了很多资源,允许应用程序像使用静态图像一样轻松使用动画,主要是展示型的动画,交互的不太好实现。网上也有丰富的动画资源,点此进入LottieFiles,里面可以直接下载JSON格式的动画文件,很炫酷。还有可以自己编辑Lottie动画的工具LottieEditor。

这里主要讲Vue项目里使用Lottie,简单封装一个展示动画的通用组件,原生的不太会搞,然后还搜了一下原理,没看懂。

上图。

1.vue-lottie安装

npm install --save vue-lottie

2. 简单封装

<template><div ref="lavContainer"></div>
</template><script lang="ts">
import { Component, Ref, Vue, Prop, Emit } from "vue-property-decorator";
import lottie from "lottie-web";@Component
export default class Lottie extends Vue {@Prop() options!: any;@Ref() readonly lavContainer!: HTMLElement;anim!: Object;mounted() {this.anim = lottie.loadAnimation({container: this.lavContainer,renderer: "svg",loop: true,autoplay: true,animationData: this.options.animationData,rendererSettings: this.options.rendererSettings});this.$emit("animCreated", this.anim);}
}
</script>

3.使用

里面加了 停止stop()  播放play()  暂停pause() 方法,并且可以设置动画速度。
animationData 是动画的Json格式。

<template><div><Lottiev-if="show":options="defaultOptions"style="width:200px;"v-on:animCreated="handleAnimation"/><div @click="switchLottie">点击开始</div><div v-if="show"><p>Speed: x{{ animationSpeed }}</p><inputtype="range"value="1"min="0"max="3"step="0.5"@change="onSpeedChange"v-model="animationSpeed"/><br /><button @click="stop">stop</button><button @click="pause">pause</button><button @click="play">play</button></div></div>
</template><script lang="ts">
import { Component, Ref, Vue, Provide } from "vue-property-decorator";
import Lottie from "./Lottie.vue";
import animationData from "@/assets/gif/loader.json";@Component({components: { Lottie }
})
export default class Test extends Vue {defaultOptions = { animationData: animationData };animationSpeed: number = 1;anim?: any;show = false;switchLottie() {this.show = !this.show;}handleAnimation(a: object) {this.anim = a;}stop() {this.anim.stop();}play() {this.anim.play();}pause() {this.anim.pause();}onSpeedChange() {this.anim.setSpeed(this.animationSpeed);}
}
</script>

相关网站:

官网:https://airbnb.design/lottie/
gayHub: https://github.com/airbnb/lottie-web
Lottie 库和插件:https://lottiefiles.com/
轮子工厂:http://www.wheelsfactory.cn/
可编辑Lottie动画工具: https://github.com/sonaye/lottie-editor

Vue轮子-Lottie-动画实现相关推荐

  1. 在vue添加lottie动画

    在vue中引入lottie非常非常简单 1.安装vue-lottie包 npm install --save vue-lottie 2.全局引入vue-lottie 在main.js引入并注册全局组件 ...

  2. 在VUE中使用Lottie动画

    Lottie简介 官方介绍:Lottie is a mobile library for Web, and iOS that parses Adobe After Effects animations ...

  3. 在vue里使用Lottie动画(实现 json 格式的动画)

    一.Lottie简介与作用 Lottie是一个库,可以解析使用AE制作的动画(需要用bodymovin导出为json格式),支持web.ios.android和react native.在前端使用,l ...

  4. 在vue项目中使用Lottie动画(随看随用)

    前言: Lottie是一个IOS,Android和React Native库,可以实时渲染动画,动画被转化成JSON文件,节省了很多资源,允许应用程序像使用静态图像一样轻松使用动画.网上也有丰富的动画 ...

  5. lottie 动画_使用After Effects和Lottie制作网络动画而不会损失质量

    lottie 动画 A quick getting started guide 快速入门指南 I recently took on a project where the team wanted to ...

  6. lottie 动画播放

    lottie 动画播放 注意: lottie官网: http://airbnb.io/lottie/#/README lottiefiles文件:https://lottiefiles.com/fea ...

  7. vue3 vite lottie动画使用以及注意事项

    1.安装 npm i -S lottie-web 2.组件内引入 import lottie from 'lottie-web'; import animateData from './1.json' ...

  8. lottie动画使用

    1. 安装 npm i --save vue-lottie 2. main.js 中引入 import Lottie from 'vue-lottie'; Vue.component('lottie' ...

  9. 程序员也想改 Lottie 动画?是的!

    一.前言 Hi,大家好,我是承香墨影! Lottie 是 Airbnb 开源的一套跨平台的完整的动画效果解决方案,用过都说好.完全解耦开发人员和设计师,让设计师设计的动画,在程序中无缝还原,真是一旦拿 ...

最新文章

  1. oracle对象权限回收,【Privilege】Oracle对象权限级联收回现象测试
  2. Serverless 解惑——函数计算如何访问 Mongo 数据库
  3. 阅兵活动首次出动“AI剪辑师”,你看到的短视频可能都出自于ta
  4. 【测试】软件测试分类体系系统学习
  5. 详解MariaDB数据库的事务
  6. 6 redis 编译失败_Redis6 Windows 版本编译
  7. 自身经历解读:2021 校招算法岗, 劝退还是继续
  8. win10 系统下CAD2009缩放卡顿问题解决
  9. 源领域和目标领域过程相似性分析
  10. java运行内存不足_Java运行过程出现的内存不足问题
  11. php根据参数跳转到指定网址,根据访问的域名跳转到指定目录的代码
  12. 华为+android+root权限获取root,华为root权限怎么开启怎么获取(简单华为手机ROOT教程)...
  13. mysql slave 'system user' locked_Mysql的slave lags一例
  14. 借助WPS将Word文档转换为PPT文档
  15. 室内制图如何让您的办公室受益
  16. 智能车那些事 4 常用电子元件之电容
  17. 惠普电脑中心点鼠标如何关闭
  18. 软件版本号详解,Alpha、Beta、RC、Stable、Release、GA、RTM、RTL、OEM、
  19. MS08067 WEB高级攻防实战班第一期 开班啦~(附最新授课目录)
  20. Labview 运行myrio发生冲突:拒绝访问:该终端配置的语言无法兼容主机LabVIEW语言。对于实时终端,可通过MAX修改终端的语言环境,确保终端语言与主机语言一致。

热门文章

  1. 中俄边城“丝路欢聚”共庆中国年
  2. 精选文章:人生第一辆车购车八大流程及提车注意事项之最强攻略
  3. 2019微信公开课Pro微信之夜内容笔记总结
  4. 奥塔在线:MySql数据库定时备份脚本
  5. 六种方法实现JavaScript数组去重
  6. 黑客技术真的能破解手机密码?对发展中的人工智能技术有影响吗?
  7. 存储程序的概念将计算机转换为,2015计算机二级office高级应用模拟题及答案(1)...
  8. 解决iphonex底部导航问题
  9. NRF52832学习笔记(31)——Watchdog看门狗使用
  10. Qt ——QSound播放wav格式音乐