黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

多宫格抽奖活动的实现

来源:黔优媒体网   时间:2024-09-19

现在微信小程序越来越火,我们也在持续不断的为大家带来微信小程序相关教程分享,本文我们继续为大家分享微信小程序实现多宫格抽奖功能。

首先看效果:

思路是先让其转动2圈多,然后再进行抽奖,格子运动用的是setTimeout,让其运行的时间间隔不一样,然后产生运动快慢的效果

好了,上代码

首先是WXML(这里面的判断可能有些绕,仔细按顺序看,因其第五个和第十一个格子在不同手机屏幕大小上的显示有问题,所以再次给它们判断了一下)


 view >

WXSS:


.box{
 margin:20rpx 25rpx;
 height: 400rpx;
 width: 698rpx;
 /*border:1px solid #ddd;*/
 position: relative;
 /*box-sizing: border-box;*/
.boxsub{
 width: 140rpx;
 height: 100rpx;
 /*border: 1px solid #f00;*/
 box-sizing: border-box;
 position: absolute;
 background: #ff6100;
 border: 1rpx solid #fff;
.boxcontent{
 text-align: center;
 font-size: 26rpx;
 display: block;
 color: #fff;
.lucky{
 width: 300rpx;
 height:130rpx;
 background:#ff6100;/* #ff6100;007FFF*/
 position: absolute;
 left: 0;
 bottom: 0;
 right: 0;
 top: 0rpx;
 margin: auto;
.lucky:active{
 opacity: 0.7;
.taplucky{
 display: block;
 text-align: center;
 font-size: 30rpx;
 line-height: 50rpx;
 height: 50rpx;
 color: #fff;
 margin-top: 20rpx;
.howMany{
 display: block;
 text-align: center;
 font-size: 26rpx;
 color: #fff;
 line-height: 40rpx;
 height: 40rpx;
.howMany_num{
 color:#007FFF;
 font-size:32rpx;
 line-height:40rpx;
 padding:0 10rpx;
.luck{
 opacity: 0.5;
 background: #ff6100;
}

JS


var time = null;//setTimeout的ID,用clearTimeout清除
Page({
 data: {
 box: [{
 name: #39;100积分 #39;
 }, {
 name: #39;10元优惠券\n满100可用 #39;
 }, {
 name: #39;60积分 #39;
 }, {
 name: #39;30积分 #39;
 }, {
 name: #39;50积分 #39;
 }, {
 name: #39;30元优惠券\n满120可用 #39;
 }, {
 name: #39;100积分 #39;
 }, {
 name: #39;200积分 #39;
 }, {
 name: #39;10积分 #39;
 }, {
 name: #39;50积分 #39;
 }, {
 name: #39;40积分 #39;
 }, {
 name: #39;50优惠券满500可用 #39;
 }, {
 name: #39;60积分 #39;
 }, {
 name: #39;70积分 #39;
 luckynum:0,//当前运动到的位置,在界面渲染
 howManyNum:10,//抽奖的剩余次数
 content:{
 index: 0, //当前转动到哪个位置,起点位置
 count: 0, //总共有多少个位置
 speed: 50, //初始转动速度
 cycle: 3*14, //转动基本次数:即至少需要转动多少次再进入抽奖环节,这里设置的是转动三次后进入抽奖环节
 prize:0,//中奖的位置
 luckytapif:true//判断现在是否可以点击
 //点击抽奖
 luckyTap:function(){
 var i=0,
 that=this,
 howManyNum = this.data.howManyNum,//剩余的抽奖次数
 luckytapif = this.data.luckytapif,//获取现在处于的状态
 luckynum = this.data.luckynum,//当前所在的格子
 prize =Math.floor(Math.random()*14) ;//中奖序号,随机生成
 if (luckytapif howManyNum 0){//当没有处于抽奖状态且剩余的抽奖次数大于零,则可以进行抽奖
 console.log( #39;prize: #39;+prize);
 this.data.content.count=this.data.box.length;
 this.setData({
 howManyNum:howManyNum-1//更新抽奖次数
 this.data.luckytapif=false;//设置为抽奖状态
 this.data.prize = prize;//中奖的序号
 this.roll();//运行抽奖函数
 } else if (howManyNum == 0 luckytapif){
 wx.showModal({
 title: #39; #39;,
 content: #39;您的抽奖次数已经没有了 #39;,
 showCancel:false
 roll:function(){
 var content=this.data.content,
 prize = this.data.prize,//中奖序号
 that=this;
 if (content.cycle - (content.count-prize) 0){//最后一轮的时间进行抽奖
 content.index++;
 content.cycle--;
 this.setData({
 luckynum: content.index%14 //当前应该反映在界面上的位置
 setTimeout(this.roll, content.speed);//继续运行抽奖函数
 }else{
 if (content.index (content.count*3 + prize)){//判断是否停止
 content.index++; 
 content.speed += (550 /14);//最后一轮的速度,匀加速,最后停下时的速度为550+50
 this.data.content=content;
 this.setData({
 luckynum: content.index % 14
 console.log(content.index, content.speed);//打印当前的步数和当前的速度
 setTimeout(this.roll,content.speed);
 }else{
 //完成抽奖,初始化数据
 console.log( #39;完成 #39;);
 content.index =0;
 content.cycle = 3 * 14;
 content.speed = 50;
 this.data.luckytapif = true;
 clearTimeout(time);
 wx.showModal({
 title: #39; #39;,
 content: #39;恭喜你抽到了 #39;+that.data.box[prize].name,
 showCancel:false
 onLoad: function (options) {
 onReady: function () {
 onShow: function () {
 onHide: function () {
 onUnload: function () {
})

相关推荐:

微信小程序如何实现图片放大预览功能

微信小程序-仿盒马鲜生

最全的微信小程序项目实例

以上就是多宫格抽奖活动的实现的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:多宫格抽奖活动的实现;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)
此操作需要登录,请先登录~
免费注册会员,尽享国内领先平台!