亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序如何利用canvas繪制幸運大轉盤功能

發布時間:2021-05-19 11:49:37 來源:億速云 閱讀:304 作者:小新 欄目:web開發

這篇文章給大家分享的是有關微信小程序如何利用canvas繪制幸運大轉盤功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

代碼如下

Page({
/**
 * 頁面的初始數據
*/
data: {
awardsConfig: {},
restaraunts: [], //大轉盤獎品信息
},
/**
 * 生命周期函數--監聽頁面加載
*/
onLoad: function (options) {
var self = this;
wx.getSystemInfo({
//獲取系統信息成功,將系統窗口的寬高賦給頁面的寬高
success: function (res) {
self.width = res.windowWidth
self.height = res.windowHeight
}
})
self.data.awardsConfig = {
chance: true,
awards: self.data.restaraunts//存放獎項信息
}
self.tab();
})
},
tab: function() {
var self = this;
// 繪制轉盤
var awardsConfig = self.data.awardsConfig.awards,
len = awardsConfig.length,
rotateDeg = 360 / len / 2 + 90,
html = [],
turnNum = 1 / len // 文字旋轉 turn 值
self.setData({
btnDisabled: self.data.awardsConfig.chance ? '' : 'disabled'
})
var ctx = wx.createContext();
for (var i = 0; i < len; i++) {
var w = self.width; //頁面寬
var r = w * 0.38; //圓半徑 0.35w
// 保存當前狀態
ctx.save();
// 開始一條新路徑
ctx.beginPath();
// 位移到圓心,下面需要圍繞圓心旋轉
// ctx.translate(150, 150);
ctx.translate(w / 2 - 14, w / 2 - 18);
// 從(0, 0)坐標開始定義一條新的子路徑
ctx.moveTo(0, 0);
// 旋轉弧度,需將角度轉換為弧度,使用 degrees * Math.PI/180 公式進行計算。
ctx.rotate((360 / len * i - rotateDeg) * Math.PI / 180);
// 繪制圓弧
ctx.arc(0, 0, r, 0, 2 * Math.PI / len, false);
// 顏色間隔
if (i % 2 == 0) {
ctx.setFillStyle('#ffffff');
} else {
ctx.setFillStyle('#ffeab0');
}
// 填充扇形
ctx.fill();
// 繪制邊框
ctx.setLineWidth(0.5);
ctx.setStrokeStyle('#e4370e');
ctx.stroke();
// 恢復前一個狀態
ctx.restore();
// 獎項列表
html.push({
turn: (i + 1) * turnNum + 'turn',
award: awardsConfig[i]
});
}
self.setData({
awardsList: html
});
wx.drawCanvas({
canvasId: 'canvas',
actions: ctx.getActions()
})
},
inner: function(e) {
const self = this;
if (self.data.awardsConfig.chance) {
self.data.awardsConfig.chance = false;//轉動時禁止再次觸發點擊事件
var json = res.data;//后端自動分配獎項,并傳給前端獎項信息
var item = parseInt(json.grade); //獲取從1到獎品數量之間的隨機數
self.getLottery(item + 1, self.data.restaraunts[item]); //獎項位置 (+1 是為了轉動的時候計算角度),對應獎項
}
},
getLottery: function(item, txt) {
var self = this
var awardsConfig = self.data.awardsConfig.awards,
len = awardsConfig.length;
var awardIndex = item;
// 獲取獎品配置
var awardsConfig = self.data.awardsConfig
if (awardIndex < 2) awardsConfig.chance = false
// 初始化 rotate
var animationInit = wx.createAnimation({
duration: 1
})
this.animationInit = animationInit;
animationInit.rotate(0).step()
this.setData({
animationData: animationInit.export(),
btnDisabled: 'disabled'
})
// 旋轉抽獎 執行動畫效果
setTimeout(function () {
var animationRun = wx.createAnimation({
duration: 4000,
timingFunction: 'ease'
})
self.animationRun = animationRun
animationRun.rotate(0 - (360 * 8 - awardIndex * (360 / len))).step()
self.setData({
animationData: animationRun.export()
})
}, 100)
// 記錄獎品
var winAwards = wx.getStorageSync('winAwards') || {
data: []
}
var textInfo = txt === "謝謝參與" ? txt : txt + '1個';
winAwards.data.push(textInfo)
wx.setStorageSync('winAwards', winAwards)
var jh = parseInt(self.data.jh) - 1;
// 中獎提示
setTimeout(function () {
if (txt === "謝謝參與") {
wx.showModal({
title: '很遺憾',
content: '祝您好運',
showCancel: false
})
} else {
wx.showModal({
title: '恭喜',
content: '獲得' + txt,
showCancel: false
})
}
self.data.awardsConfig.chance = true;
if (awardsConfig.chance) {
self.setData({
btnDisabled: ''
})
}
}, 4100);
},
function(err) {
console.log(err)
console.log("err")
//error
})
},
/**
* 生命周期函數--監聽頁面初次渲染完成
*/
onReady: function() {
// this.drawTurntable(this, new Date());
},
/**
* 生命周期函數--監聽頁面顯示
*/
onShow: function() {
},
/**
* 生命周期函數--監聽頁面隱藏
*/
onHide: function() {
},
/**
* 生命周期函數--監聽頁面卸載
*/
onUnload: function() {
},
/**
* 頁面相關事件處理函數--監聽用戶下拉動作
*/
onPullDownRefresh: function() {
},
/**
* 頁面上拉觸底事件的處理函數
*/
onReachBottom: function() {
},
/**
* 用戶點擊右上角分享
*/
onShareAppMessage: function() {
}
})

感謝各位的閱讀!關于“微信小程序如何利用canvas繪制幸運大轉盤功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高陵县| 克山县| 永泰县| 屏东县| 隆子县| 连南| 博罗县| 新郑市| 溧水县| 报价| 防城港市| 桦川县| 商水县| 台湾省| 崇阳县| 平定县| 建阳市| 竹山县| 高陵县| 吴堡县| 九台市| 修武县| 翁源县| 梁平县| 嵩明县| 昆明市| 黄平县| 甘洛县| 汉寿县| 肇州县| 博野县| 华阴市| 廉江市| 静乐县| 民勤县| 芦山县| 东明县| 顺平县| 大冶市| 乌恰县| 宣城市|