更新记录
1.0.5(2024-06-14)
调整iOS平台组件内的默认样式
1.0.4(2024-05-24)
- 修复 Android uni-app x 正式包模式下,可能不展示动画的Bug
1.0.3(2024-04-11)
修复Android平台 修正组件名称为 animation-view
查看更多
平台兼容性
HbuilderX/cli最低兼容版本 |
3.7.0 |
uni-app
app-vue |
app-nvue |
app-android |
app-ios |
? |
? |
? |
? |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
uni-app x
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
animation-view
animation-view组件是uts组件插件,需 HBuilderX 3.7.0+
使用文档: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 组件在uni-app项目中仅nvue页面支持(vue页面不支持),在uni-app x项目中uvue页面支持
- 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>