91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

微信小程序怎么實現轉盤抽獎

發布時間:2022-07-28 09:49:08 來源:億速云 閱讀:148 作者:iii 欄目:開發技術

這篇文章主要介紹“微信小程序怎么實現轉盤抽獎”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“微信小程序怎么實現轉盤抽獎”文章能幫助大家解決問題。

lucky-draw.wxss:

.lucky_draw_zp{ width: 502rpx; height: 502rpx; margin: 0 auto; position: relative;}
.lucky_draw_zp_img , .lucky_draw_zp_btn{ width: 100%; height: 100%; position: absolute; left: 0; top: 0;}

lucky-draw.wxml:

<view class="lucky_draw_zp" bindtap="getLucky">
    <image  class="lucky_draw_zp_img" src="{{zpData.zpImg}}" mode="aspectFit"></image>
    <image class="lucky_draw_zp_btn" src="../../../images/zp_btn.png" mode="aspectFit"></image>
</view>

lucky-draw.js:

 Page({
 
    /**
     * 頁面的初始數據
     */
    data: {
        zpData:{
            //轉盤主圖圖片url
            zpImg:'../../../images/zp.png',
            
            equalParts:null, //一共多少等份
            oneAngle:null, //每一等份多少度
            
            // ******** 轉盤獎品數據:后臺獲取數據 ********
            //注:根據轉盤圖片對應的值(轉盤圖片指針處順時針向右數,起始1,獎品對應的格子數【第幾等份上】)
            awardSetting:[
                '第1個格子對應內容',
                '第2個格子對應內容',
                '第3個格子對應內容',
                '第4個格子對應內容',
                '第5個格子對應內容',
                '第6個格子對應內容',
            ],
        },
        
        ifRoate:false, //轉盤是否在轉動(判斷阻止多次點擊)
        zpRotateDeg:'', //旋轉角度
        
        // ******** 抽獎結果數據:后臺獲取數據 ********
        curKey:null, //抽獎結果 : 取值范圍 1 至 總格子數
        ifWinning:null, //是否中獎
    },
 
 
 
 
    // 獲取轉盤初始數據
    getZpData(){
        let zpImg = 'zpData.zpImg';
        let awardSetting = 'zpData.awardSetting';
        this.setData({
            [zpImg]:'../../../images/zp.png',
            [awardSetting]:[
                '1',
                '2',
                '3',
                '4',
                '5',
                '6',
            ],
        });
        
        this.setZpDefault();
    },
    // 根據轉盤初始數據設置轉盤初始關鍵參數
    setZpDefault(){
        let equalPartsNum = this.data.zpData.awardSetting.length;
        let oneAngleNum = 360 / equalPartsNum;
        let equalParts = 'zpData.equalParts';
        let oneAngle = 'zpData.oneAngle';
        this.setData({
            //一共多少等份
            [equalParts] : equalPartsNum,
            // 根據轉盤得等份數設置 每一等份多少度
            [oneAngle] : oneAngleNum,
        });
    },
 
 
    // 設置旋轉動效
    setToRotate(degNum){
        this.setData({
            zpRotateDeg : '-webkit-transform: rotate(' + degNum + 'deg);transform: rotate(' + degNum + 'deg);-webkit-transition: all 5s ease;transition: all 5s ease;',
        });
    },
    //根據 設置的 指針停止時指向的格子(中獎結果),設置其旋轉角度區間
    setRotate(awardSettingNumber){ //awardSettingNumber  取值范圍 1 至 總格子數
        setTimeout(() => {
            //轉盤停止時 指針 指向的格子 最小角度
            let minAngle = 360 - awardSettingNumber * this.data.zpData.oneAngle + 5;
            //轉盤停止時 指針 指向的格子 最大角度
            let maxAngle = 360 - (awardSettingNumber - 1) * this.data.zpData.oneAngle - 5;
            //旋轉區間
            let newAngle = Math.floor(minAngle + Math.random() * (maxAngle - minAngle)) + 360 * 15;
            
            this.setToRotate(newAngle);
            
            setTimeout(() => {
                this.roateEnd(awardSettingNumber);
            }, 5150);
        },50);
    },
    //旋轉結束執行
    roateEnd(awardSettingNumber){
        console.log('當前指向格子數 -- ' + awardSettingNumber , this.data.curKey);
        console.log('當前指向格子數對應內容 -- ' + this.data.zpData.awardSetting[awardSettingNumber - 1] , this.data.zpData.awardSetting[this.data.curKey - 1]);
        
        // 是否中獎
        if(this.data.ifWinning){
            console.log('中獎');
        }else{
            console.log('未中獎');
        }
        
        setTimeout(() => {
            this.setData({
                ifRoate : false, //轉盤是否在轉動
            });
        }, 100);
    },
 
 
    //點擊抽獎
    getLucky(){
        if(this.data.ifRoate){
            return false;
        }
        
        this.setData({
            ifRoate : true, //轉盤是否在轉動
            zpRotateDeg : ''
        });
                
        // 請求后臺獲取抽獎結果中...
        
        /*test*/
        var res = {
            status:1,
            curKey:Math.floor(1 + Math.random() * this.data.zpData.equalParts), //抽獎結果 : 取值范圍 1 至 總格子數
            ifWinning:true, //是否中獎
            info:'沒機會或什么什么'
        }
        /*test*/
        
        /
            if(res.status == 1){
                this.setData({
                    curKey : res.curKey,
                    ifWinning : res.ifWinning
                });
                
                this.setRotate(this.data.curKey);
            }else{
                this.setData({
                    ifRoate : false, //轉盤是否在轉動
                });
                wx.showModal({
                    title: '溫馨提示',
                    showCancel:false,
                    content: res.info,
                })
            }
        /
    },
 
 
    /**
     * 生命周期函數--監聽頁面加載
     */
    onLoad: function (options) {
 
    },
 
    /**
     * 生命周期函數--監聽頁面初次渲染完成
     */
    onReady: function () {
 
    },
 
    /**
     * 生命周期函數--監聽頁面顯示
     */
    onShow: function () {
        this.getZpData();
    },
 
    /**
     * 生命周期函數--監聽頁面隱藏
     */
    onHide: function () {
 
    },
 
    /**
     * 生命周期函數--監聽頁面卸載
     */
    onUnload: function () {
 
    },
 
    /**
     * 頁面相關事件處理函數--監聽用戶下拉動作
     */
    onPullDownRefresh: function () {
 
    },
 
    /**
     * 頁面上拉觸底事件的處理函數
     */
    onReachBottom: function () {
 
    },
 
    /**
     * 用戶點擊右上角分享
     */
    onShareAppMessage: function () {
 
    }
})

圖片資源:

微信小程序怎么實現轉盤抽獎微信小程序怎么實現轉盤抽獎

關于“微信小程序怎么實現轉盤抽獎”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

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

AI

渝北区| 朝阳县| 安福县| 沁源县| 修武县| 嫩江县| 道真| 扶沟县| 鹤壁市| 永定县| 阿克苏市| 洛隆县| 齐齐哈尔市| 台北县| 武汉市| 永宁县| 巴林左旗| 乃东县| 敦煌市| 化德县| 清流县| 茶陵县| 新邵县| 金门县| 安达市| 体育| 隆德县| 岳池县| 田阳县| 绥宁县| 嘉荫县| 长治市| 囊谦县| 繁昌县| 交口县| 蕉岭县| 临安市| 洛川县| 忻州市| 双桥区| 海淀区|