更新记录
1.0.6(2024-07-15) 下载此版本
Android lottie 升级依赖版本 为 5.2.0
1.0.5(2024-06-14) 下载此版本
调整iOS平台组件内的默认样式
1.0.4(2024-05-24) 下载此版本
- 修复 Android uni-app x 正式包模式下,可能不展示动画的Bug
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.7.0,Android:5.0,iOS:11,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
animation-view
animation-view组件是uts插件,需 HBuilderX 3.7.0+
本地编译需要 gradle 7.5 及以上版本
使用文档:https://uniapp.dcloud.net.cn/component/animation-view.html
属性说明
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | String | 动画资源地址,支持本地路径和网络路径 | |
loop | Boolean | false | 动画是否循环播放 |
autoplay | Boolean | true | 动画是否自动播放 |
action | String | play | 动画操作,可取值 play、pause、stop |
hidden | Boolean | true | 是否隐藏动画 |
@bindended | EventHandle | 当播放到末尾时触发 ended 事件(自然播放结束会触发回调,循环播放结束及手动停止动画不会触发) |
注意
- animation-view 仅App端nvue页面支持
- App端实现使用了Lottie三方SDK,参考开源项目:Lottie for Android,Lottie for iOS
- App-Android平台要求Android5(API Leavel 21)及以上系统
- App-iOS平台要求iOS11及以上版本系统
代码示例
<template>
<div>
<animation-view class="animation" :path="path" :loop="loop" :autoplay="autoplay" :action="action"
:hidden="hidden" @bindended="lottieEnd">
</animation-view>
<button @click="playLottie" type="primary">{{status}}lottie动画</button>
</div>
</template>
<script>
export default {
data() {
return {
path: 'https://b.bdstatic.com/miniapp/images/lottie_example_one.json',
loop: false,
autoplay: false,
action: 'play',
hidden: false,
status: '暂停'
}
},
methods: {
playLottie() {
this.action = ('play' !== this.action) ? 'play' : 'pause';
this.status = ('pause' === this.action) ? '播放' : '暂停';
},
lottieEnd() {
this.status = '播放';
this.action = 'stop';
console.log('动画播放结束');
}
}
}
</script>
<style>
.animation {
width: 750rpx;
height: 300rpx;
background-color: #FF0000;
margin-bottom: 20px;
}
</style>