更新记录

1.0.0(2024-11-19) 下载此版本

若有使用帮助请直接联系作者


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.7.11 app-vue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

使用示例

<template>
  <view style="background: #3f51b5;">
    <view style="display: flex;justify-content: center;padding-top: 30rpx;">
      <sh-draw-card
        ref="drawCardRef"
        @onSelect=""
        :list="list"
        :targetIndex="4"
        :gap="5"
        :row="3"
        :maxOpenCount="1"
        :endTurnAll="true"
        :shuffleAnimate="true"
        :shuffle="true"
        :shuffleTurnAll="false"
        :turnTime="0.3">
      </sh-draw-card>
    </view>
    <view style="margin-top: 60px;">
      <button @click="$refs.drawCardRef.start">开始</button>
      <button @click="$refs.drawCardRef.reset">重置</button>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { frontImg: 'https://i.111666.best/image/jyiLXmd6mpvgVn0M312RUr.png', backImg: 'https://i.111666.best/image/ykvhaS8Rq9Y9XnkD5H7jY7.png'},
        { frontImg: 'https://i.111666.best/image/hXf4hYPLKLtWTRrpw1NkeA.png', backImg: 'https://i.111666.best/image/PFfH7HAm1tv5w66S3dBcEb.png'},
        { frontImg: 'https://i.111666.best/image/Zwfppo4rey1DDowiSxD70e.png', backImg: 'https://i.111666.best/image/LEhbPFbpUaXd2EQHQvI1U4.png'},
        { frontImg: 'https://i.111666.best/image/UulsBCHyxCoDBIkwZH0tkO.png', backImg: 'https://i.111666.best/image/OgbI4s58eaCncOrrVdHxoG.png'},
        { frontImg: 'https://i.111666.best/image/jzGc0ueAbaEmFOxpJjYQl7.png', backImg: 'https://i.111666.best/image/WSHAohnopfaSNyahiyxncu.png'},
        { frontImg: 'https://i.111666.best/image/5OsWLzXtPN2wZ5I7K25ThI.png', backImg: 'https://i.111666.best/image/kfxD20gtXrzLzfiFW7xmpo.png'},
        { frontImg: 'https://i.111666.best/image/g1MNNjwcCo3JQR5UznRYCB.png', backImg: 'https://i.111666.best/image/S05XyUqzScBMNRef4qnSO1.png'},
        { frontImg: 'https://i.111666.best/image/M5tMH8acLhPhJ4FS7luKzR.png', backImg: 'https://i.111666.best/image/ovzGUTZNbZB3tXdE0RixCg.png'},
        { frontImg: 'https://i.111666.best/image/n4hn7DjlwQ0lxL4aUuN69y.png', backImg: 'https://i.111666.best/image/af2jEuv6vLaaT1KA79uQxD.png'},
      ]
    }
  },
  methods: {
    (e) {
      console.log('list中对应的数据 -->', e.data)
      console.log('点击的索引 -->', e.index)
    }
  }
}
</script>

插件预览地址

属性 Porps

属性 类型 默认值 说明
list Array [] 奖品列表 建议数量为(col * row), 因为用户点击的时候会返回选中的奖品,可以使用 [ { frontImg, backImg } ] 定义奖品图片
width Number 100 单个卡片宽度
height Number 112 单个卡片高度
gap Number 10 卡片间距
targetIndex Number 0 中心卡片索引,洗牌的时候周围卡片会向该卡片聚集
col Number 3 列数
row Number 3 行数
collectTime Number 0.3 洗牌聚合/散开时间 单位秒/s
turnTime Number 0.4 卡片翻转时间
maxOpenCount Number 1 最大打开数量,也就是用户可以抽几次奖卡
shuffle Boolean true 是否洗牌,会对list参数传入数据进程洗牌操作
endTurnAll Boolean true 结束的时候是否全部打开卡片
shuffleTurnAll Boolean false 洗牌的时候是否全部打开卡片
shuffleAnimate Boolean false 是否开启洗牌动画
onOpenAsync () => Promise 异步获取奖项的函数,必须返回一个Promise

插槽 Slot

插槽名 说明
front 卡片正面,参数为 { data, index } 如果插槽不显示内容请在元素上加入 position: absolute
back 卡片反面,参数为 { data, index }
<!-- 微信小程序不显示的情况请关注此代码 -->
<sh-draw-card>
  <template #back="{data}">
    <view style="position: absolute; width: 100%; height: 100%; background: red"></view>
  </template>
</sh-draw-card>

事件 Emit

事件名 说明 回调参数
onTab 点击卡片触发 { data, index }
onSelect 开始打开卡片触发 { data, index }
onMax 超过最大抽卡数量 { data, index }

方法 Methods

方法名 说明
start 开始抽奖,抽奖之前必须调用此函数
reset 重置抽奖

隐私、权限声明

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

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

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

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问