Css 動(dòng)畫 旋轉(zhuǎn) 轉(zhuǎn)盤



旋轉(zhuǎn)完畢 图桑靠的位置胆剧,  根據(jù)后臺(tái)返回的數(shù)據(jù)字段 判斷停留位置
prizes:{
                'TT_ONE_HUNDRED_PACKAGE': [(4 * Math.PI) / 3], //
                'TT_FIFTY': [(10 * Math.PI) / 6, Math.PI], //  50
                'TT_TWENTY_FIVE': [Math.PI / 3],
                'TT_HALF_DISCOUNT': [(2 * Math.PI) / 3], //, 半價(jià)
                'TT_FULL_DISCOUNT': [0],
            },

//canvas渲染每一幀效果圖
    onLoadWheel = (angle)=> {
        let canvas = document.getElementById('wheel'); //id選擇 元素
        let context = canvas.getContext('2d');
        //先保存,以便后面重繪前回到現(xiàn)在的狀態(tài)
        context.save();
        let width = canvas.width;
        let height = canvas.height;
        let img = new Image();
        img.src = WheelTable;  //為旋轉(zhuǎn)的圖片
        img.onload = function() {
            context.translate(width * 0.5, height * 0.5);
            // context.rotate((Math.PI / 18) * i);
            context.rotate(angle);
            context.drawImage(img, -width / 2, -height / 2, width, height);
            //畫圖后需要回到之前save的狀態(tài)
            context.restore();
        };
    }

    //循環(huán)調(diào)用自身叹螟,渲染出動(dòng)畫效果
    startDraw = (stopAngle, boool)=> {
        let that = this;
        let tempSpeed = (stopAngle - currentAngle) / 100;
        currentAngle += tempSpeed;
        setTimeout(function () {
            if ((stopAngle - currentAngle) < 0.01) {
                wheelStatus = false;
                that.setState({
                    showModal:boool,
                });
            } else {
                that.onLoadWheel(currentAngle);
                that.startDraw(stopAngle, boool);
            }
        }, 10);
    }


//點(diǎn)擊開始抽獎(jiǎng)活動(dòng),判斷是否應(yīng)該繼續(xù)抽獎(jiǎng)
    clickStart = ()=> {
        //判斷是否正在抽獎(jiǎng)
        if (wheelStatus) {
            return;
        }
          let that = this;
          let url = `自己接口信息`;
            reqm.requestGetNoAuth(url).then(res=>{
                if (res.status === 200) {
                    currentAngle = 0;  //每次旋轉(zhuǎn)初始化
                    that.props.changeLeftTime(res.data.lotteryNum);  //后端返回的剩余抽獎(jiǎng)次數(shù)字段
                    that.props.getCoupon(res.data.coupons);   //展示中獎(jiǎng)信息 (自己寫樣式及其組件)
                    let tempResult = res.data.lotteryType;  //后端返回的中獎(jiǎng)信息字段
                    let prize = that.state.prizes[tempResult]; //根據(jù)后端返回的中獎(jiǎng)信息字段隨機(jī)給到(對(duì)應(yīng)該獎(jiǎng)勵(lì)的圓盤)一個(gè)旋轉(zhuǎn)位置
                    let resultCount = prize.length;
                    let finalResult = Math.floor(Math.random() * resultCount);
                    let plusAngle = prize[finalResult];
                    let stopAngle = 20 * Math.PI + plusAngle;
                    wheelStatus = true;
                    that.startDraw(stopAngle);
                }
    
            }).catch(err=>{
                Alert.show({
                    content:err
                });
            });
        }



加油哦普舆!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帐萎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敞曹,更是在濱河造成了極大的恐慌账月,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澳迫,死亡現(xiàn)場(chǎng)離奇詭異局齿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)橄登,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門抓歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讥此,“玉大人,你說我怎么就攤上這事谣妻√言” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拌禾,是天一觀的道長(zhǎng)取胎。 經(jīng)常有香客問我,道長(zhǎng)湃窍,這世上最難降的妖魔是什么闻蛀? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮您市,結(jié)果婚禮上觉痛,老公的妹妹穿的比我還像新娘。我一直安慰自己茵休,他們只是感情好薪棒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榕莺,像睡著了一般俐芯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钉鸯,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天吧史,我揣著相機(jī)與錄音,去河邊找鬼唠雕。 笑死贸营,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岩睁。 我是一名探鬼主播钞脂,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼捕儒!你這毒婦竟也來了冰啃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤刘莹,失蹤者是張志新(化名)和其女友劉穎阎毅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栋猖,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡净薛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒲拉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肃拜。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痴腌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出燃领,到底是詐尸還是另有隱情士聪,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布猛蔽,位于F島的核電站剥悟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏曼库。R本人自食惡果不足惜区岗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毁枯。 院中可真熱鬧慈缔,春花似錦、人聲如沸种玛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赂韵。三九已至娱节,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祭示,已是汗流浹背肄满。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绍移,地道東北人悄窃。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓讥电,卻偏偏與公主長(zhǎng)得像蹂窖,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恩敌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354