更新记录

v0.0.1(2026-08-30)

首次上传


平台兼容性

uni-app(3.8.3)

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

Effect Box 盲盒特效组件

一个基于 uni-app 的盲盒抽奖特效组件,SVGA 全屏动画与音效文件实现,仅支持 H5

功能特性

  • 全屏 SVGA 动画播放
  • 按钮点击音效
  • 动画完成音效

基本使用

<script setup lang="ts">
import { ref } from 'vue'
import EffectBox from '@/components/effect-box/effect-box.vue'

const showEffect = ref(false)

function handleDraw() {
  showEffect.value = true
}
</script>

<template>
  <button @click="handleDraw">
    点击抽奖
  </button>
  <EffectBox v-model:show="showEffect" />
</template>

完整示例(含预加载)

<script setup lang="ts">
import { onMounted, ref } from 'vue'
import EffectBox from '@/components/effect-box/effect-box.vue'

const showEffect = ref(false)
const effectBoxRef = ref()

onMounted(() => {
  // 预加载 SVGA 资源
  effectBoxRef.value?.preload()
})

function handleDraw() {
  // 播放按钮点击音效
  effectBoxRef.value?.playClickSound()
  setTimeout(() => {
    showEffect.value = true
  }, 300)
}
</script>

<template>
  <button @click="handleDraw">
    点击抽奖
  </button>
  <EffectBox ref="effectBoxRef" v-model:show="showEffect" />
</template>

Props 属性

属性名 类型 默认值 说明
show boolean false 控制特效弹窗显示状态,支持 v-model:show

Events 事件

事件名 回调参数 说明
update:show value: boolean 特效动画播放完成后自动触发,用于关闭弹窗
start SVGA 动画开始播放时触发
complete SVGA 动画播放完成时触发,可用于后续业务逻辑(如显示结果弹窗)

使用示例

<script setup lang="ts">
import { ref } from 'vue'
import EffectBox from '@/components/effect-box/effect-box.vue'

const showEffect = ref(false)
const showResult = ref(false)

function handleDraw() {
  showEffect.value = true
}

function onEffectComplete() {
  // 动画播放完成,显示结果弹窗
  showResult.value = true
}
</script>

<template>
  <button @click="handleDraw">
    点击抽奖
  </button>
  <EffectBox v-model:show="showEffect" @complete="onEffectComplete" />
</template>

Method 实例方法

方法名 参数 返回值 说明
preload void 预加载 SVGA 动画资源,建议在 onMounted 时调用以提升播放体验
playClickSound void 播放按钮点击音效

静态资源

src/static/effect-box/
├── songli.svga           # 盲盒抽奖 SVGA 动画
├── magic-poof-pop.mp3    # 动画完成音效
└── cartoon-music.mp3     # 按钮点击音效

工作流程

组件挂载
  │
  ├─→ preload() 预加载 SVGA
  │
  └─→ 初始化音效

触发抽奖
  │
  ├─→ playClickSound() 播放按钮点击音效
  │
  ├─→ show = true
  │     │
  │     ├─→ 播放 SVGA 动画
  │     │
  │     ├─→ 动画开始 → 触发 start 事件
  │     │
  │     ├─→ 动画就绪 → 延迟 800ms 播放 SVGA 音效
  │     │
  │     └─→ 动画完成 → 触发 complete 事件
  │                       │
  │                       └─→ 触发 update:show(false) → 关闭弹窗

隐私、权限声明

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

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

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

暂无用户评论。