實(shí)現(xiàn)幸運(yùn)大轉(zhuǎn)盤的HTML效果解析
幸運(yùn)大轉(zhuǎn)盤是一種常見的互動(dòng)活動(dòng)形式,通過(guò)點(diǎn)擊按鈕開始轉(zhuǎn)動(dòng)轉(zhuǎn)盤,最終獲得獎(jiǎng)品或者參與獎(jiǎng)勵(lì)。在實(shí)現(xiàn)幸運(yùn)大轉(zhuǎn)盤的HTML效果中,主要運(yùn)用了jQuery和CSS技術(shù),下面將著重分析其中的轉(zhuǎn)動(dòng)邏輯。 轉(zhuǎn)盤開始按
幸運(yùn)大轉(zhuǎn)盤是一種常見的互動(dòng)活動(dòng)形式,通過(guò)點(diǎn)擊按鈕開始轉(zhuǎn)動(dòng)轉(zhuǎn)盤,最終獲得獎(jiǎng)品或者參與獎(jiǎng)勵(lì)。在實(shí)現(xiàn)幸運(yùn)大轉(zhuǎn)盤的HTML效果中,主要運(yùn)用了jQuery和CSS技術(shù),下面將著重分析其中的轉(zhuǎn)動(dòng)邏輯。
轉(zhuǎn)盤開始按鈕觸發(fā)函數(shù)
在點(diǎn)擊轉(zhuǎn)盤開始按鈕后,會(huì)觸發(fā)相應(yīng)的function來(lái)啟動(dòng)轉(zhuǎn)動(dòng)過(guò)程。其中的start算法負(fù)責(zé)實(shí)現(xiàn)轉(zhuǎn)盤的旋轉(zhuǎn)效果,inner代表轉(zhuǎn)盤開始按鈕。
轉(zhuǎn)動(dòng)的主要方法 - start
在實(shí)現(xiàn)轉(zhuǎn)動(dòng)功能的主要方法start中,關(guān)鍵代碼如下:`deg deg || lostDeg[parseInt(lostDeg.length * Math.random())];` 這段代碼中,deg代表轉(zhuǎn)盤隨機(jī)旋轉(zhuǎn)的角度。
角度的隨機(jī)計(jì)算
那么這個(gè)隨機(jī)角度是如何計(jì)算出來(lái)的呢?我們先看一下lostDeg的定義:`var lostDeg [36, 66, 96, 156, 186, 216, 276, 306, 336 ];` 結(jié)合前述代碼,可以得知,在lostDeg數(shù)組中隨機(jī)選擇一個(gè)元素作為轉(zhuǎn)動(dòng)角度。
轉(zhuǎn)動(dòng)原理解析
在轉(zhuǎn)動(dòng)之前,需要預(yù)先定義一個(gè)包含各種角度數(shù)值的數(shù)組,然后隨機(jī)選擇一個(gè)角度進(jìn)行轉(zhuǎn)動(dòng),這就是幸運(yùn)大轉(zhuǎn)盤的轉(zhuǎn)動(dòng)原理。
最小轉(zhuǎn)動(dòng)角度設(shè)置
為了避免轉(zhuǎn)動(dòng)角度過(guò)小導(dǎo)致轉(zhuǎn)盤停止,一般會(huì)設(shè)置一個(gè)最小轉(zhuǎn)動(dòng)角度,比如306*5(5圈)。因此,剛開始轉(zhuǎn)動(dòng)時(shí)看似無(wú)意義,實(shí)際上最后一圈才是獲獎(jiǎng)的關(guān)鍵。
圖片推動(dòng)實(shí)現(xiàn)轉(zhuǎn)動(dòng)效果
通過(guò)不斷推送一定角度范圍內(nèi)的圖片,使得畫面呈現(xiàn)出轉(zhuǎn)動(dòng)的效果,這是實(shí)現(xiàn)轉(zhuǎn)盤旋轉(zhuǎn)的關(guān)鍵。
處理中獎(jiǎng)結(jié)果
最后,根據(jù)轉(zhuǎn)盤停止時(shí)的結(jié)果進(jìn)行中獎(jiǎng)或未中獎(jiǎng)的處理。在代碼中,如果中獎(jiǎng)則執(zhí)行相應(yīng)操作,否則提示“謝謝參與”。需要注意的是,示例代碼中的prize始終為空,因此永遠(yuǎn)不會(huì)中獎(jiǎng)。
結(jié)語(yǔ)
希望大家能夠享受玩轉(zhuǎn)盤游戲的樂(lè)趣,但也要注意避免參與永遠(yuǎn)不會(huì)中獎(jiǎng)的轉(zhuǎn)盤活動(dòng)。祝大家好運(yùn)!