官方文档:https://lottiefiles.com/
Lottie是一个库,可以解析使用AE制作的动画(需要用bodymovin导出为json格式),支持web、ios、android和react native。在web侧,lottie-web库可以解析导出的动画json文件,并将其以svg或者canvas的方式将动画绘制到我们页面中。
交互性非常好,动画支持倍速播放,倒放,暂停等功能,能熟练使用的话,交互性能提升很多。
其优点:
不足:
官方github:https://github.com/chenqingspring/vue-lottie
示例demo:https://chenqingspring.github.io/vue-lottie
vue-lottie是将lottie封装后支持vue框架,简单易行。下面介绍使用步骤
准备好动画 json 文件。可以让 UI 处理好:
npm install --save vue-lottie
import lottie from 'vue-lottie';
Vue.component('lottie', lottie)
下面是基本使用
<template>
<div ref="animArea">
<Lottie :options="defaultOptions" v-on:animCreated="handleAnimation" />
</div>
</template>
<script>
import * as animeData from '../assets/anime.json'//引入动画资源文件
export default {
name: 'animate',
data () {
return {
// ... some code
defaultOptions: { container: this.$refs.animArean, animationData: animationData.default, loop: false, autoplay: false },
anim: {},
}
},
methods: {
//
handleAnimation: function (anim) {
console.log('动画', anim) // 这里可以看到 lottie 对象的全部属性
this.anim = anim
},
// 动画开始
animPlay () {
console.log('animPlay')
this.anim.play()
},
// 动画结束
animStop () {
console.log('animStop')
this.anim.stop()
},
// 动画暂停
animPause () {
console.log('animPause')
this.anim.pause()
},
}
}
</script>
下面列一些常用的配置属性,更多配置项请看:https://github.com/airbnb/lottie-web
方法:
监听事件: