更新记录

0.2.3(2025-08-31)

  • feat: 兼容uniappx 鸿蒙next

0.2.2(2025-08-11)

  • fix: 修复文件名冲突导致uniappx无法运行

0.2.1(2025-07-09)

  • fix: 修复h5报错问题
查看更多

平台兼容性

uni-app(4.44)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
5.1
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

uni-app x(4.61)

Chrome Safari Android iOS 鸿蒙 微信小程序
5.1

lime-svga SVGA动画组件

一个高性能的SVGA动画渲染组件,完美兼容UniApp(微信小程序、H5、安卓、iOS)和UniAppX(微信小程序、H5、安卓、iOS、鸿蒙Next)平台。支持加载、播放、暂停SVGA动画,并提供丰富的动画控制和自定义功能。

插件依赖:UniAppX App端需要依赖 lime-svga-x 原生插件

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场中搜索并导入lime-svga
  2. 根据平台安装相应依赖:
    • H5:npm install svgaplayerweb --save
    • Uniappx App端:需要额外导入lime-svga-x原生插件
  3. 需要源码才能运行

代码演示

基础用法

最简单的方式,直接设置src属性即可播放SVGA动画。

<view class="content" style="height: 750rpx">
  <l-svga src="https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/static/angel.svga"></l-svga>
</view>

高级用法

通过init事件获取parser和player实例,实现更多自定义功能。

UniApp示例

<view class="content" style="height: 750rpx">
  <l-svga ref="svga" @init="render"></l-svga>
</view>
const render = async ({parser, player}) => {
  // 加载SVGA文件
  const videoItem = await parser.load("https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/static/angel.svga");
  // 设置动画
  await player.setVideoItem(videoItem);
  // 设置当前动画的循环次数,0代表无限循环 默认 0
  player.loops = 1
  // 开始播放动画,reverse = true 时则反向播放
  player.startAnimation()
  // 监听动画完成
  player.onFinished(() => {
    console.log('动画结束')
  })
}

UniAppX示例

<l-svga @init="render" style="height: 750rpx"></l-svga>
import type { SVGA } from '@/uni_modules/lime-svga'

const render = async ({parser, player} : SVGA) => {
  const videoItem = await parser.load(path);
  await player.setVideoItem(videoItem);
  player.loops = 5
  player.startAnimation()
  player.onFinished(() => {
    console.log('动画结束')
  })
}

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

<!-- 代码位于 uni_modules/lime-svga/components/lime-svga -->
<lime-svga />

插件标签说明

标签名 说明
l-svga 组件标签
lime-svga 演示标签

Vue2使用说明

main.js中添加以下代码:

// vue2项目中使用
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)

详细配置请参考官方文档:Vue Composition API

API文档

Props 属性说明

属性名 说明 类型 默认值
src SVGA动画地址,支持网络或本地路径 string -

Events 事件

事件名 说明 回调参数
init 组件初始化完成时触发 {parser, player}

Player 实例方法

属性/方法 说明 类型/参数 默认值
loops 设置当前动画的循环次数,0代表无限循环 number 0
clearsAfterStop 动画停止播放后是否清空画布 boolean true
fillMode 动画播放结束后的状态,Forward保留在最后一帧,Backward保留在第一帧 string "Forward"
setVideoItem 设置需要播放的动画实体 async (videoItem?: VideoEntity): Promise<any> -
setContentMode 设置动画缩放模式 (contentMode: string) -
startAnimation 开始播放动画 (reverse: boolean = false) -
startAnimationWithRange 在指定范围内播放动画 (range: Range, reverse: boolean = false) -
pauseAnimation 暂停播放动画 () -
stopAnimation 停止播放动画 (clear?: boolean) -
clear 清空画布 () -
stepToFrame 跳转到指定帧 (frame: number, andPlay: boolean = false) -
stepToPercentage 跳转到指定进度百分比 (percentage: number, andPlay: boolean = false) -
setImage 使用图片替换指定元素 async (src: string, forKey: string): Promise<any> -
setText 添加文本到指定元素上 (dynamicText: DynamicText, forKey: string) -
clearDynamicObjects 清空所有替换元素 () -
onFinished 监听动画完成 (callback: () => void) -
onFrame 监听当前帧的变化 (callback: (frame: number) => void) -
onPercentage 监听当前进度的变化 (callback: (percentage: number) => void) -

contentMode 可选值

说明
Fill 填充模式,不保持原有比例,填满整个容器
AspectFill 保持原有比例填充,可能会裁剪内容
AspectFit 保持原有比例适应,确保内容完全显示

常见问题

  • 确保网络资源允许跨域访问
  • App端需要额外安装lime-svga-x原生插件
  • 如果动画无法播放,请检查SVGA文件格式是否正确

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: