codecamp

支付宝小程序营销组件 翻牌抽奖·flip-draw

页面上有 N 张卡牌,每张卡牌对应不同奖品,用户点击卡牌进行翻牌抽奖。开发者可自定义卡牌数量和翻牌的次数。

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

扫码体验

示例代码

安装

npm i ant-mini-flip-draw --save

注册

//.json
{
  "usingComponents": {
    "flipdraw": "ant-mini-flip-draw/component/index"
  }
}

调用

<!-- .axml -->
<view>
<flipdraw
    prizeList="{{prizeList}}"
    prizeName="{{prizeName}}"
    isDrawing="{{isDrawing}}"
    flipAllCards="{{flipAllCards}}"
    onFlipStart="onFlipStart"
  />
</view>
//.js
Page({
  data: {
    docParamsImg: "https://img.alicdn.com/tfs/TB1sfaaJSzqK1RjSZFHXXb3CpXa-1326-846.png",
    prizeList: [
      {
      'name': '谢谢参与1',
      'icon': 'https://zos.alipayobjects.com/rmsportal/dexmbhnbsLRGIZGBqTcA.png'
      },
      {
      'name': '666元红包',
      'icon': 'https://zos.alipayobjects.com/rmsportal/nxpXbcNBOmbeIOVCUsuS.png'
      },
      {
      'name': '1元红包',
      'icon': 'https://zos.alipayobjects.com/rmsportal/RxQruKQwiQCeYXhvwCfP.png'
      },
      {
      'name': '3元红包',
      'icon': 'https://zos.alipayobjects.com/rmsportal/tyMAYvTdjRFOVxqWVhsj.png'
      },
      {
      'name': '谢谢参与2',
      'icon': 'https://zos.alipayobjects.com/rmsportal/dexmbhnbsLRGIZGBqTcA.png'
      },
      {
      'name': '1元红包',
      'icon': 'https://zos.alipayobjects.com/rmsportal/RxQruKQwiQCeYXhvwCfP.png'
      },
      {
      'name': '谢谢参与3',
      'icon': 'https://zos.alipayobjects.com/rmsportal/dexmbhnbsLRGIZGBqTcA.png'
      },
      {
      'name': '5元红包',
      'icon': 'https://zos.alipayobjects.com/rmsportal/qanDEFeGBoiPflYxkhJY.png'
      }
    ],
    cardBgImg: 'https://gw.alicdn.com/tfs/TB1P.AMXMHqK1RjSZJnXXbNLpXa-610-600.png',
    prizeName: '',
    flipAllCards: false,
    isDrawing: false,
  },
  onFlipStart() {
    console.log('开始了,这个时候最好页面控制下 loading 状态,组件内不做控制');
    this.setData({
      isDrawing: true, // 修改抽奖状态,防止重复点击多次请求
    });
    // 开始抽奖
    setTimeout(() => {
      console.log('拿到结果,设置奖品信息');
      if (Math.random() > 0.3) {
        this.setData({
          prizeName: '666元红包',
          isDrawing: false,
        });
      } else {
        this.setData({
          isDrawing: false, // 抽奖结束一定要还原 isDrawing 状态
        });
      }
      this.showResultDialog()
    }, 1000);
  },
  showResultDialog() {
    // do something
    this.setData({
      flipAllCards: true, // 将剩下未翻过的牌自动翻,展示奖品结果。
    })
  }
});undefined

属性

属性 描述 类型 默认值 必填
prizeList 奖项列表,须包含 name 和 icon 字段。 Array []
prizeName 抽奖结果的奖品 name,其值必须位于 prizeList 中。 String ''
cardNum 展示多少张卡片,推荐 3/6/9。 Number 9
cardHeight 宽度固定 210,高度需要等比换算设置。 Number 210
cardBgImg 卡背图片。 String -
unawardImg 未中奖展示图片。 String -
isDrawing 是否正在抽奖,用于限制点击。 Boolean -
flipAllCards 是否翻转剩余卡片。 String -
onFlipStart 转动开始的回调。 Function () => {}

注意

  • 请求前一定要设置 isDrawing = true,请求结束后一定要设置 isDrawing = false
  • cardHeight 卡片高度是相对 750 视觉稿设置的,宽高默认 210x210rpx。宽度固定,高度可变。比如 210x300 的图片,cardHeight 就设置为 300;如果是 200x250 的图片需要等比转换一下,cardHeight = 210 * (250/200)。
支付宝小程序营销组件 摇骰子·dice-roller
支付宝小程序营销组件 手势解锁·lock
温馨提示
下载编程狮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; }