如何實現微信小程序的輪盤抽獎功能

2023-03-01    分類: 網站建設

為了吸引用戶,商家會做一些活動,利用贈送或充值的積分來進行抽獎,現在來講下微信小程序如果實現輪盤抽獎的功能,先看下圖:

抽獎小程序后臺設置
上面展示的就是輪盤抽獎,一共有六個獎項,其中一個是“不中獎”的,其余五個均能獲得獎品,獎品的標題、獎品類型(實物或積分)、中獎概率,每次抽獎需要多少積分等都可以在后臺設置,如下圖所示:
每次抽獎時扣除積分,獎品類型有實物和積分,如果是積分,直接增加用戶賬號的積分,這個比較簡單,如果是實物,則要生成一個關聯商品的禮品訂單。
抽獎小程序代碼
中獎率:是指整個抽獎的分為1萬份,所以最低的中獎率可以設置成0.01%(當然如果不想用戶抽到某個獎項,可以設置成0%,這樣用戶就永遠不可能抽到),后臺的接口使用的PHP語言,計算中獎率的代碼如下圖:
其中$i=rand(1,10000);即從1到10000隨機一個數。
winning_odds是指某個獎項的中獎數值,例如中獎率是10%,則在winning_odds的值為1000.特別提一下,不中獎的概率是由100%-其他五個獎項的概率而自動生成的。所以后臺修改某個獎項的概率的時候,需要更新不中獎的概率。
小程序JS方面:
Page({
//獎品配置
awardsConfig: {
btnDisabled: ‘’,//是否允許點擊抽獎
awards: [
{ 'index': 0, 'name': '300積分' },
{ 'index': 1, 'name': '某商品' },
{ 'index': 2, 'name': '1000積分' },
{ 'index': 3, 'name': '100積分' },
{ 'index': 4, 'name': '不中獎' },
{ 'index': 5, 'name': '某實物' }
]
},
onReady: function (e) {
this.drawAwardRoundel();
},
//畫抽獎圓盤
drawAwardRoundel: function () {
var awards = this.awardsConfig.awards;
var awardsList = [];
var turnNum = 1 / awards.length; // 文字旋轉 turn 值
// 獎項列表
for (var i = 0; i < awards.length; i++) {
awardsList.push({ turn: i * turnNum + 'turn', lineTurn: i * turnNum + turnNum / 2 + 'turn', award: awards[i].name });
}
this.setData({
btnDisabled: this.awardsConfig.chance ? '' : 'disabled',
awardsList: awardsList
});
},
//發起抽獎
playReward: function () {
//中獎index
var awardIndex = 2;
var runNum = 8;//旋轉8周
var duration = 4000;//時長
// 旋轉角度
this.runDeg = this.runDeg || 0;
this.runDeg = this.runDeg + (360 - this.runDeg % 360) + (360 * runNum - awardIndex * (360 / 6))
//創建動畫
var animationRun = wx.createAnimation({
duration: duration,
timingFunction: 'ease'
})
animationRun.rotate(this.runDeg).step();
this.setData({
animationData: animationRun.export(),
btnDisabled: 'disabled'
});
// 中獎提示
var awardsConfig = this.awardsConfig;
setTimeout(function () {
wx.showModal({
title: '恭喜',
content: '獲得' + (awardsConfig.awards[awardIndex].name),
showCancel: false
});
this.setData({
btnDisabled: ''
});
}.bind(this), duration);
}
})
前端代碼
小程序的wxml代碼如下圖:
我們這里就不詳細講如何調用API接口,如何判斷是獲取了哪個獎項了,大家可以根據初始的JS代碼來套程序,因為改變了awardIndex值,對應的獎項也會出來,通過后臺接口的返回值,可以判斷是積分還是實物,然后進行下一步操作.為了防止用戶連續點擊“抽獎”的按鈕,需要用 btnDisabled來判斷用戶是否可以繼續抽獎,當輪盤尚未轉完時,是不允許重復點擊的。
以上就是對微信小程序輪盤抽獎后臺功能,抽獎概率,小程序JS代碼進行講解,這是只提供一種思路,大家可以根據實際的情況對程序功能進行調整。

網頁題目:如何實現微信小程序的輪盤抽獎功能
本文來源:http://www.kartarina.com/news26/240476.html

成都網站建設公司_創新互聯,為您提供ChatGPT網站設計公司商城網站網站營銷網站設計網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司
主站蜘蛛池模板: 无码人妻久久久一区二区三区| 国产乱人伦Av在线无码| 免费A级毛片无码A∨中文字幕下载 | 亚洲熟妇无码八V在线播放| 久久无码AV一区二区三区| 西西444www无码大胆| 国产亚洲?V无码?V男人的天堂| 人妻丰满熟妇AV无码片| 久久无码AV中文出轨人妻| 97碰碰碰人妻视频无码| 本道天堂成在人线av无码免费| 亚洲av无码成人影院一区| 久久青草亚洲AV无码麻豆| 午夜无码中文字幕在线播放| 99精品人妻无码专区在线视频区| 高清无码视频直接看| 粉嫩高中生无码视频在线观看| 无码人妻丰满熟妇区五十路 | 狠狠躁天天躁无码中文字幕| 精品无码国产自产在线观看水浒传| 台湾无码AV一区二区三区| 无码熟妇人妻AV影音先锋| 亚洲AV无码国产精品色午友在线 | 一区二区三区无码高清视频| 直接看的成人无码视频网站| 亚洲综合av永久无码精品一区二区| 中文字幕精品三区无码亚洲| 国产50部艳色禁片无码| 亚洲熟妇无码乱子AV电影| 97无码人妻福利免费公开在线视频| 无码专区国产无套粉嫩白浆内射| 在线看片无码永久免费视频| 无码国产精成人午夜视频一区二区| 久久久无码精品亚洲日韩软件| 亚洲免费日韩无码系列 | 亚洲Av无码精品色午夜| 亚洲AV无码日韩AV无码导航| 无码国产午夜福利片在线观看| 久久精品岛国av一区二区无码| 日韩精品久久无码中文字幕| 人妻丰满熟妇岳AV无码区HD|