-----------------------------------------------------------------以下是个人见解部分-----------------------------------------------------------------
个人见解:
优点:简单高效,动画文件小,丝滑流畅,动画可控性强
缺点:依赖包非常重,对动画要求不高的项目不太建议使用
基础篇参考:
比阿里犸良还强大!Lottie 动效设计完全指南(基础篇)
-----------------------------------------------------------------以上是个人见解部分-----------------------------------------------------------------
先来一个简单的尝尝鲜
仓库地址
模仿demo
blog
掘金
vue项目 用到了vue-lottie动画效果
vue-lottie仓库
vue-lottie demo
打开仓库可以看见很多很棒的效果(nice
Installation
npm install --save vue-lottie
复制代码
Usage
Speed: x{{animationSpeed}}
复制代码
这是之前官方给的demo代码 基本上和平时使用没啥不一样(所以只需要复制粘贴就ok了)
# json 动画效果AE转json后的文件
import * as animationData from './assets/pinjump.json';
复制代码
引入的json需要改!!!
# 这里引入了 lottie组件
import Lottie from './lottie.vue';
复制代码
# lottie.vue
复制代码
然后会发现还是有错误(缺少组件!) 其实很简单啦,打开仓库进入src然后打开lottle组件然后复制过去就ok啦hhh(简单)
这是效果图(是不是很简单233
官方给给了一个很好的效果网站 地址
下载json文件 然后更换引入的json
# json 动画效果AE转json后的文件
import * as animationData from './assets/blood_transfusion_kawaii.json.json';
复制代码
是不是也很简单!!!
先来效果图~~~
因为有多个需要用到lottie动画,想了半天不知道怎么解决调用方法的问题 最后想了一个简单的方法
直接将每一个动画抽到一个组件 组件内依然用之前的方法(稍微改造一下就行
然后利用父子组件传数据的形式传递json文件 子组件props接收
# html
今日活跃
2600
复制代码
# props
props: {
animationDataPath: {
type: Object,
default: null
}
},
data() {
return {
defaultOptions: {
// animationData: animationDataPath,
animationData: this.animationDataPath,
autoplay: false, # 不自动播放
loop: false # 不循环
}
}
}
复制代码
# 事件调用
@mouseenter="lottiePlay" @mouseleave="lottieStop"
lottiePlay: function() {
this.anim.play()
},
lottieStop: function() {
this.anim.stop()
}
复制代码
然后就到了父组件传数据
# 父组件
animationDataPathOne: require('../../../public/json/compass.json')
复制代码
自己用到了require引入json 然后打包出来 一样可以正常运行 如果大家有很好的方法可以教我!我好学习学习
emmmmm 大概就是这么多吧~
如果实在需要这个的源码可以打开我的github仓库 由于项目还是一个半成品 所以地址就放在最后面了
vue-lottie源码
项目地址
如果大家觉得不错的话 可以点star哦(厚脸皮233