微信小程序抽奖组件的使用步骤


Posted in Javascript onJanuary 11, 2021

采用微信组件的方式提供,因组件内部使用了async/await,所以请在微信开发者工具"详情=》本地设置 勾上 增强编译和使用npm",小程序npm使用方法请参考:微信小程序-npm支持

先看效果图:

微信小程序抽奖组件的使用步骤

使用步骤:

步骤一:

安装依赖或前往githua下载源码,拷贝dist目录下的lottery-turntable目录

npm i lottery-turntable-for-wx-miniprogram

步骤二:

页面JSON配置

{
 "usingComponents": {
  "lottery-turntable":"lottery-turntable-for-wx-miniprogram/lottery_turntable/index"
 }
}

步骤三:

准备数据和增加事件处理(使用组件页面JS)

const datas = [{
 "id": "792085712309854208",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 1"
}, {
 "id": "766410261029724160",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 2"
}, {
 "id": "770719340921364480",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 3"
}, {
 "id": "770946438416048128",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 4"
}, {
 "id": "781950121802735616",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 5"
}, {
 "id": "766411654436233216",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 6"
}, {
 "id": "770716883860332544",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 7"
}, {
 "id": "796879308510732288",
 "imgUrl": "../../images/icon.png",
 "title": "迅雷白金会员月卡 - 8"
}];
 
Page({
 data: {
  datas: datas, // 数据 
  prizeId: '', // 抽中结果id,通过属性方式传入组件
  config: { 		// 转盘配置,通过属性方式传入组件
   titleLength: 7
  }
 },
 /**
  * 次数不足回调
  * @param e
  */
 onNotEnoughHandle(e) {
  wx.showToast({
   icon: 'none',
   title: e.detail
  })
 },
 
 /**
  * 抽奖回调
  */
 onLuckDrawHandle() {
  this.setData({
   prizeId: this.data.datas[Math.floor(Math.random() * 10 % this.data.datas.length)].id
  });
 },
 
 /**
  * 动画旋转完成回调
  */
 onLuckDrawFinishHandle() {
  const datas = this.data.datas;
  const data = datas.find((item) => {
   return item.id === this.data.prizeId;
  });
  wx.showToast({
   icon: 'none',
   title: `恭喜你抽中 ${data.title}`
  })
  this.setData({
   prizeId: ''
  });
 }
})

步骤四:

页面使用

<lottery-turntable
   data="{{datas}}"
   prize-id="{{prizeId}}"
   count="{{5}}"
   config="{{config}}"
   bindLuckDraw="onLuckDrawHandle"
   bindNotEnough="onNotEnoughHandle"
   bindLuckDrawFinish="onLuckDrawFinishHandle"
  ></lottery-turntable>

步骤五:

更改组件配置项(以下为默认配置),通过config属性传入一个js对象

/**
 * ease: 取值如下
 * 'linear' 动画从头到尾的速度是相同的
 * 'ease' 动画以低速开始,然后加快,在结束前变慢
 * 'ease-in' 动画以低速开始
 * 'ease-in-out' 动画以低速开始和结束
 * 'ease-out' 动画以低速结束
 * 'step-start' 动画第一帧就跳至结束状态直到结束
 * 'step-end' 动画一直保持开始状态,最后一帧跳到结束状态
 */
// 以下为默认配置
let config = {
 size: {
  width: '572rpx',
  height: '572rpx'
 },                   // 转盘宽高
 bgColors: ['#FFC53F', '#FFED97'],    // 转盘间隔背景色 支持多种颜色交替
 fontSize: 10,              // 文字大小
 fontColor: '#C31A34',          // 文字颜色
 titleMarginTop: 12,           // 最外文字边距
 titleLength: 6             // 最外文字个数
 iconWidth: 29.5,            // 图标宽度
 iconHeight: 29.5,            // 图标高度
 iconAndTextPadding: 4,         // 最内文字与图标的边距
 duration: 8000,             // 转盘转动动画时长
 rate: 1.5,               // 由时长s / 圈数得到
 border: 'border: 10rpx solid #FEFAE4;', // 转盘边框
 ease: 'ease-out'            // 转盘动画
};

总结

到此这篇关于微信小程序抽奖组件的文章就介绍到这了,更多相关微信小程序抽奖组件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript parseInt 大改造
Sep 27 Javascript
javaScript同意等待代码实现心得
Jan 01 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 Javascript
JavaScript内存泄漏的处理方式
Nov 20 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
JS严格模式原理与用法实例分析
Apr 27 Javascript
JS数组索引检测中的数据类型问题详解
Jan 11 #Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 #Javascript
js删除对象中的某一个字段的方法实现
Jan 11 #Javascript
jQuery实现购物车全功能
Jan 11 #jQuery
jQuery实现手风琴特效
Jan 11 #jQuery
iview实现动态表单和自定义验证时间段重叠
Jan 10 #Javascript
JavaScript canvas实现文字时钟
Jan 10 #Javascript
You might like
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
vue element upload实现图片本地预览
2019/08/20 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python Pillow Image Invert
2019/01/22 Python
linux安装python修改默认python版本方法
2019/03/31 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
python实现一个猜拳游戏
2020/04/05 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
工作人员思想汇报
2014/01/09 职场文书
音乐教学案例
2014/01/30 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python