微信小程序抽獎(jiǎng)組件的使用步驟
采用微信組件的方式提供,因組件內(nèi)部使用了async/await,所以請(qǐng)?jiān)谖⑿砰_(kāi)發(fā)者工具"詳情=》本地設(shè)置 勾上 增強(qiáng)編譯和使用npm",小程序npm使用方法請(qǐng)參考:微信小程序-npm支持
先看效果圖:

使用步驟:
步驟一:
安裝依賴或前往githua下載源碼,拷貝dist目錄下的lottery-turntable目錄
npm i lottery-turntable-for-wx-miniprogram
步驟二:
頁(yè)面JSON配置
{
"usingComponents": {
"lottery-turntable":"lottery-turntable-for-wx-miniprogram/lottery_turntable/index"
}
}
步驟三:
準(zhǔn)備數(shù)據(jù)和增加事件處理(使用組件頁(yè)面JS)
const datas = [{
"id": "792085712309854208",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 1"
}, {
"id": "766410261029724160",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 2"
}, {
"id": "770719340921364480",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 3"
}, {
"id": "770946438416048128",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 4"
}, {
"id": "781950121802735616",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 5"
}, {
"id": "766411654436233216",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 6"
}, {
"id": "770716883860332544",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 7"
}, {
"id": "796879308510732288",
"imgUrl": "../../images/icon.png",
"title": "迅雷白金會(huì)員月卡 - 8"
}];
Page({
data: {
datas: datas, // 數(shù)據(jù)
prizeId: '', // 抽中結(jié)果id,通過(guò)屬性方式傳入組件
config: { // 轉(zhuǎn)盤(pán)配置,通過(guò)屬性方式傳入組件
titleLength: 7
}
},
/**
* 次數(shù)不足回調(diào)
* @param e
*/
onNotEnoughHandle(e) {
wx.showToast({
icon: 'none',
title: e.detail
})
},
/**
* 抽獎(jiǎng)回調(diào)
*/
onLuckDrawHandle() {
this.setData({
prizeId: this.data.datas[Math.floor(Math.random() * 10 % this.data.datas.length)].id
});
},
/**
* 動(dòng)畫(huà)旋轉(zhuǎn)完成回調(diào)
*/
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: ''
});
}
})
步驟四:
頁(yè)面使用
<lottery-turntable
data="{{datas}}"
prize-id="{{prizeId}}"
count="{{5}}"
config="{{config}}"
bindLuckDraw="onLuckDrawHandle"
bindNotEnough="onNotEnoughHandle"
bindLuckDrawFinish="onLuckDrawFinishHandle"
></lottery-turntable>
步驟五:
更改組件配置項(xiàng)(以下為默認(rèn)配置),通過(guò)config屬性傳入一個(gè)js對(duì)象
/**
* ease: 取值如下
* 'linear' 動(dòng)畫(huà)從頭到尾的速度是相同的
* 'ease' 動(dòng)畫(huà)以低速開(kāi)始,然后加快,在結(jié)束前變慢
* 'ease-in' 動(dòng)畫(huà)以低速開(kāi)始
* 'ease-in-out' 動(dòng)畫(huà)以低速開(kāi)始和結(jié)束
* 'ease-out' 動(dòng)畫(huà)以低速結(jié)束
* 'step-start' 動(dòng)畫(huà)第一幀就跳至結(jié)束狀態(tài)直到結(jié)束
* 'step-end' 動(dòng)畫(huà)一直保持開(kāi)始狀態(tài),最后一幀跳到結(jié)束狀態(tài)
*/
// 以下為默認(rèn)配置
let config = {
size: {
width: '572rpx',
height: '572rpx'
}, // 轉(zhuǎn)盤(pán)寬高
bgColors: ['#FFC53F', '#FFED97'], // 轉(zhuǎn)盤(pán)間隔背景色 支持多種顏色交替
fontSize: 10, // 文字大小
fontColor: '#C31A34', // 文字顏色
titleMarginTop: 12, // 最外文字邊距
titleLength: 6 // 最外文字個(gè)數(shù)
iconWidth: 29.5, // 圖標(biāo)寬度
iconHeight: 29.5, // 圖標(biāo)高度
iconAndTextPadding: 4, // 最內(nèi)文字與圖標(biāo)的邊距
duration: 8000, // 轉(zhuǎn)盤(pán)轉(zhuǎn)動(dòng)動(dòng)畫(huà)時(shí)長(zhǎng)
rate: 1.5, // 由時(shí)長(zhǎng)s / 圈數(shù)得到
border: 'border: 10rpx solid #FEFAE4;', // 轉(zhuǎn)盤(pán)邊框
ease: 'ease-out' // 轉(zhuǎn)盤(pán)動(dòng)畫(huà)
};
總結(jié)
到此這篇關(guān)于微信小程序抽獎(jiǎng)組件的文章就介紹到這了,更多相關(guān)微信小程序抽獎(jiǎng)組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 微信小程序?qū)崿F(xiàn)轉(zhuǎn)盤(pán)抽獎(jiǎng)
- 微信小程序開(kāi)發(fā)之大轉(zhuǎn)盤(pán) 仿天貓超市抽獎(jiǎng)實(shí)例
- 微信小程序?qū)崿F(xiàn)簡(jiǎn)單九宮格抽獎(jiǎng)
- 微信小程序?qū)崿F(xiàn)走馬燈式抽獎(jiǎng)
- 微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫(huà)
- 微信小程序 扭蛋抽獎(jiǎng)機(jī)css3動(dòng)畫(huà)實(shí)現(xiàn)詳解
- 微信小程序?qū)崿F(xiàn)九宮格抽獎(jiǎng)
- 微信小程序?qū)崿F(xiàn)多宮格抽獎(jiǎng)活動(dòng)
- 微信小程序 搖一搖抽獎(jiǎng)簡(jiǎn)單實(shí)例實(shí)現(xiàn)代碼
- 微信小程序轉(zhuǎn)盤(pán)抽獎(jiǎng)的實(shí)現(xiàn)方法
相關(guān)文章
JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的探究
眾所周知JS中new的作用是通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)實(shí)例對(duì)象,這篇文章主要給大家介紹了關(guān)于JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的相關(guān)資料,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
解決遍歷時(shí)Array.indexOf產(chǎn)生的性能問(wèn)題
javascript中數(shù)組是沒(méi)有indexOf方法,extjs中給數(shù)據(jù)添加了該方法2012-07-07
修改 bootstrap table 默認(rèn)detailRow樣式的實(shí)例代碼
這篇文章主要介紹了修改 bootstrap table 默認(rèn)detailRow樣式的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-07-07
javascript 網(wǎng)頁(yè)跳轉(zhuǎn)的方法
昨天練習(xí)的時(shí)候正好要用到跳轉(zhuǎn)代碼,在網(wǎng)上找了一下,覺(jué)得下面幾個(gè)不錯(cuò)...整理了一下發(fā)上來(lái)...2008-12-12
bootstrap treeview 樹(shù)形菜單帶復(fù)選框及級(jí)聯(lián)選擇功能
這篇文章主要介紹了bootstrap treeview 樹(shù)形菜單帶復(fù)選框及級(jí)聯(lián)選擇功能,代碼超簡(jiǎn)單,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-06-06
在JavaScript中驗(yàn)證URL的新方法(2023版)
在JavaScript領(lǐng)域,URL 驗(yàn)證方面有了新消息!多年來(lái),人們一直在討論JavaScript沒(méi)有一種簡(jiǎn)便的方法來(lái)驗(yàn)證 URL,現(xiàn)在有了一種新方法URL.canParse(),需要的朋友可以參考下2023-09-09
前端實(shí)現(xiàn)全局主題切換功能實(shí)例代碼
這篇文章主要介紹了如何使用ReactHook和Context實(shí)現(xiàn)全局主題切換的功能,通過(guò)創(chuàng)建一個(gè)Context對(duì)象和一個(gè)ThemeProvider組件,可以將當(dāng)前主題存儲(chǔ)在Context中,并提供一個(gè)切換主題的方法,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2025-03-03

