codecamp

支付宝小程序营销组件 大转盘·wheel-draw

通过点击转盘中心按钮转动转盘,进行抽奖,可以自定义转盘转动抽奖的次数。

更多详细信息请参见 代码市场

扫码体验

示例代码

安装

npm i ant-mini-wheel-draw --save

注册

//.json
{
  "usingComponents": {
    "wheel": "ant-mini-wheel-draw/es/wheel/index"
  }
}

调用

<!-- .axml -->
<view class="container">
  <wheel
    width="22em"
    prizeList="{{prizeList}}" // 奖项列表
    prizeName="{{prizeName}}" // 获奖项目名称
    rotTimes="{{totalTimes}}" // 转盘机会次数
    onStart="onStart" // 转盘开始旋转回调
    onFinish="onFinish" // 转盘结束旋转回调
  />
  <view class="times">
    <text>你还有{{totalTimes - curTimes}}次抽奖机会</text>
  </view>
  <view class="result">
    <text>{{result}}</text>
  </view>
</view>undefined
// .js
Page({
  data: {
    prizeList: [
      {
        name: 'H&M100元优惠券',
        img: 'https://gw.alipayobjects.com/zos/rmsportal/nIQUKeYBbJWliGJVhVmx.png'
      }, {
        name: '2元话费券',
        img: 'https://gw.alipayobjects.com/zos/rmsportal/HkrVjjjuxZPUMCUbPazb.png'
      }, {
        name: '45元飞猪出行券',
        img: 'https://gw.alipayobjects.com/zos/rmsportal/cDctUxwBLPCszQHRapYV.png'
      }, {
        name: 'H&M10元优惠券',
        img: 'https://gw.alipayobjects.com/zos/rmsportal/FAmIWZAWpUwlRFKqQDLz.png'
      }, {
        name: '2元流量券',
        img: 'https://gw.alipayobjects.com/zos/rmsportal/cuGomeXzMyeeZMjvVjBj.png'
      }, {
        name: '未中奖',
        img: 'https://zos.alipayobjects.com/rmsportal/dwhgPyWAcXuvJAWlSSgU.png'
      }
    ],
    prizeName: '2元话费券',
    totalTimes: 2,
    curTimes: 0,
    result: '',
  },
  /*
    @param name 获奖项名字
    @param times 当前转动次数
  */
  onStart (name, times) {
    // 转盘开始转动
    this.setData({
      result: `第${times}次抽奖中,请稍候...`,
      curTimes: times++
    })
  },
  /*
    @param name 获奖项名字
    @param times 当前转动次数
  */
  onFinish (name, times) {
    // 转盘结束转动
     this.setData({
      result: name === '未中奖' ? '很遗憾,差点就中奖了' : `恭喜你,获得${name}`,
      prizeName: this.data.prizeList[Math.floor(Math.random() * 6)].name,
    })
  }
});undefined

属性

属性 描述 类型 默认值 必填
width 转盘容器宽度,默认单位 px。 Number 300
initDeg 转盘初始化角度旋转偏移,单位 reg。 Number 0
rotTimes 抽奖机会次数,当抽奖次数大于该值时不可再抽奖。 Number 1
prizeList 奖品列表,长度为6,每一项必须包含img(奖品图片) 和 name(奖品名字)。 Array []
prizeName 中奖的奖品名字,值需要存在于 prizeList 的 name 字段中。 String ''
prizeWidth 奖品图片宽度,默认单位 px,插件会根据 width 选项值自动计算,建议不填。 Number 80
prizePaddingTop 奖品图片距圆弧的内边距,默认单位 px,插件会根据 width 选项值自动计算,建议不填。 Number 20
bgImg 转盘扇面背景图地址。 String -
btnImg 转盘按钮背景图地址。 String -
onStart 旋转开始回调,name:中奖项name,times:当前是第几次旋转。 Function (name, times) => {}
onFinish 旋转结束回调,name:中奖项name,times:当前是第几次旋转。 Function (name, times) => {}
onTimesUp 抽奖次数用尽后,再次点击抽奖按钮会触发该回调。 Function () => {}
支付宝小程序营销组件 使用说明
支付宝小程序营销组件 水果机·wheel-draw
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }