九宫格抽奖系统,适合公司年会,节庆日活动游戏,带后台管理

九宫格抽奖系统源码搭建, 带后台管理,设置奖项,抽奖码和中奖概率,适合公司年会, 节庆日活动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是微信小程序实现九宫抽奖的步骤和代码示例: 1. 在wxml文件中添加九宫布局代码: ```html <view class="grid-container"> <view class="grid-item" wx:for="{{gridData}}" wx:key="{{index}}" bindtap="startRoll"> <image class="grid-img" src="{{item.imgUrl}}"></image> <text class="grid-text">{{item.name}}</text> </view> </view> ``` 2. 在js文件中定义九宫数据和抽奖逻辑: ```javascript Page({ data: { gridData: [ { id: 1, name: '奖品1', imgUrl: 'imgUrl1' }, { id: 2, name: '奖品2', imgUrl: 'imgUrl2' }, { id: 3, name: '奖品3', imgUrl: 'imgUrl3' }, { id: 4, name: '奖品4', imgUrl: 'imgUrl4' }, { id: 5, name: '奖品5', imgUrl: 'imgUrl5' }, { id: 6, name: '奖品6', imgUrl: 'imgUrl6' }, { id: 7, name: '奖品7', imgUrl: 'imgUrl7' }, { id: 8, name: '奖品8', imgUrl: 'imgUrl8' }, { id: 9, name: '奖品9', imgUrl: 'imgUrl9' } ], isRolling: false, // 是否正在抽奖 prizeIndex: -1, // 中奖项的索引 rollCount: 0, // 已经滚动的子数 rollTime: 0, // 滚动的时间 timer: null // 定时器 }, // 开始抽奖 startRoll: function() { if (this.data.isRolling) { return; } this.setData({ isRolling: true, prizeIndex: -1, rollCount: 0, rollTime: 0 }); this.roll(); }, // 滚动九宫 roll: function() { let that = this; let data = that.data; let gridData = data.gridData; let len = gridData.length; let prizeIndex = data.prizeIndex; let rollCount = data.rollCount; let rollTime = data.rollTime; let timer = data.timer; // 滚动到中奖项 if (rollCount >= len + prizeIndex) { clearInterval(timer); that.setData({ isRolling: false }); wx.showModal({ title: '恭喜', content: '您中了' + gridData[prizeIndex].name, showCancel: false }); return; } // 滚动九宫 let index = rollCount % len; let item = gridData[index]; item.selected = true; that.setData({ gridData: gridData }); setTimeout(function() { item.selected = false; that.setData({ gridData: gridData }); }, 300); // 控制滚动速度 if (rollCount < len / 2) { rollTime += 30; } else if (rollCount >= len / 2 && rollCount < len / 4 * 3) { rollTime += 50; } else { rollTime += 80; } // 更新数据 rollCount++; that.setData({ rollCount: rollCount, rollTime: rollTime }); // 循环滚动 timer = setTimeout(function() { that.roll(); }, rollTime); that.setData({ timer: timer }); } }) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值