基于JavaScript實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)
用JavaScript實(shí)現(xiàn)一個(gè)簡單的抽獎(jiǎng)系統(tǒng),有【開始】按鈕和【停止】按鈕。
功能:
- 點(diǎn)開始按鈕開始抽獎(jiǎng),隨機(jī)出現(xiàn)獎(jiǎng)品名稱;
- 點(diǎn)停止按鈕即可停止抽獎(jiǎng);
- 按下回車鍵可切換開始抽獎(jiǎng)和停止抽獎(jiǎng)。
html代碼:
創(chuàng)建html結(jié)構(gòu),最基礎(chǔ)的要含有顯示的獎(jiǎng)品名稱和開始、停止按鈕。
<!doctype html> <html> <head> <title>抽獎(jiǎng)系統(tǒng)</title> <meta charset="utf-8"> <link type="text/css" rel="stylesheet" href="css/style.css"> <script type="text/javascript" src="js/script.js"></script> </head> <body> <div id="title" class="title">開始抽獎(jiǎng)啦!</div> <div class="btns"> <span id="play">開 始</span> <span id="stop">停 止</span> </div> </body> </html>
js主要代碼片段:
首先,定義data數(shù)組,寫入各獎(jiǎng)品名稱。并初始化timer定時(shí)器,和鍵盤事件狀態(tài)flag(一開始狀態(tài)為0,按下鍵盤變成1,再按鍵盤變成0,如此切換).
var data=['Phone7','Ipad','三星筆記本','佳能相機(jī)','惠普打印機(jī)','謝謝參與','100元充值卡','1000元超市購物券']; timer = null, flag = 0;
定義開始抽獎(jiǎng)函數(shù)playFun();
function playFun() { var title = document.getElementById('title'); var play = document.getElementById('play'); //每次都先清除上一次的定時(shí)器任務(wù),避免抽獎(jiǎng)效果累加頻率會(huì)越來越快 clearInterval(timer); //定時(shí)器50毫秒觸發(fā)一次 timer = setInterval(function(){ //獲取獎(jiǎng)品下標(biāo)隨機(jī)數(shù) var random = Math.floor(Math.random() * data.length); //顯示隨機(jī)的獎(jiǎng)品名稱 title.innerHTML = data[random]; }, 50); //改變將開始按鈕背景色 play.style.background = '#666'; }
定義停止抽獎(jiǎng)函數(shù)stopFun();
function stopFun(){ //清除定時(shí)器即可結(jié)束抽獎(jiǎng) clearInterval(timer); var play = document.getElementById('play'); //改變將停止按鈕背景色 play.style.background = '#036'; }
按回車鍵切換抽獎(jiǎng)狀態(tài)事件;
document.onkeyup = function(event){ event = event || window.event; //回車鍵鍵碼為13 if (event.keyCode == 13) { //如果狀態(tài)flag值為0則開始抽獎(jiǎng),并把狀態(tài)值改為1,否則停止抽獎(jiǎng)并把狀態(tài)值改為0 if (flag == 0){ playFun(); flag = 1; }else{ stopFun(); flag = 0; } } }
js完整代碼:
var data = ['Phone7', 'Ipad', '三星筆記本', '佳能相機(jī)', '惠普打印機(jī)', '謝謝參與', '100元充值卡', '1000元超市購物券'], timer = null, //定時(shí)器 flag = 0; //用于鍵盤事件狀態(tài)標(biāo)記 window.onload = function() { var play = document.getElementById('play'), stop = document.getElementById('stop'); // 開始抽獎(jiǎng) play.onclick = playFun; stop.onclick = stopFun; // 鍵盤事件 document.onkeyup = function(event) { event = event || window.event; if (event.keyCode == 13) { if (flag == 0) { playFun(); flag = 1; } else { stopFun(); flag = 0; } } } } // 開始抽獎(jiǎng) function playFun() { var title = document.getElementById('title'); var play = document.getElementById('play'); //每次都先清除上一次的定時(shí)器任務(wù),避免抽獎(jiǎng)效果累加頻率會(huì)越來越快 clearInterval(timer); timer = setInterval(function() { var random = Math.floor(Math.random() * data.length); title.innerHTML = data[random]; }, 50); play.style.background = '#999'; } //停止抽獎(jiǎng) function stopFun() { clearInterval(timer); var play = document.getElementById('play'); play.style.background = '#036'; }
css樣式:
* { margin: 0; padding: 0; } .title { font-size: 24px; font-weight: bold; width: 400px; height: 70px; margin: 0 auto; padding-top: 30px; text-align: center; color: #f00; } .btns { width: 190px; height: 30px; margin: 0 auto; } .btns span { font-family: '微軟雅黑'; font-size: 14px; line-height: 27px; display: block; float: left; width: 80px; height: 27px; margin-right: 10px; cursor: pointer; text-align: center; color: #fff; border: 1px solid #eee; border-radius: 7px; background: #036; }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 原生js實(shí)現(xiàn)簡易抽獎(jiǎng)系統(tǒng)
- JavaScript實(shí)現(xiàn)簡單抽獎(jiǎng)系統(tǒng)
- 慕課網(wǎng)題目之js實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)功能
- JavaScript-定時(shí)器0~9抽獎(jiǎng)系統(tǒng)詳解(代碼)
- js組件SlotMachine實(shí)現(xiàn)圖片切換效果制作抽獎(jiǎng)系統(tǒng)
- 基于javascript實(shí)現(xiàn)簡單的抽獎(jiǎng)系統(tǒng)
- javascript實(shí)現(xiàn)可鍵盤控制的抽獎(jiǎng)系統(tǒng)
- 用Javascript輕松制作一套簡單的抽獎(jiǎng)系統(tǒng)
- js實(shí)現(xiàn)簡單的抽獎(jiǎng)系統(tǒng)
相關(guān)文章
js實(shí)現(xiàn)點(diǎn)擊后將文字或圖片復(fù)制到剪貼板的方法
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊后將文字或圖片復(fù)制到剪貼板的方法,功能非常實(shí)用,需要的朋友可以參考下2014-08-08javascript特效實(shí)現(xiàn)——當(dāng)前時(shí)間和倒計(jì)時(shí)效果的簡單實(shí)例
下面小編就為大家?guī)硪黄猨avascript特效實(shí)現(xiàn)——當(dāng)前時(shí)間和倒計(jì)時(shí)效果的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07淺析如何利用JavaScript進(jìn)行語音識(shí)別
所謂語音識(shí)別就是將你所說的轉(zhuǎn)化成文字。Chrome 瀏覽器在版本25之后開始對(duì)這一特性的支持。這篇文章將會(huì)詳細(xì)的介紹如何使用JavaScript進(jìn)行語音識(shí)別,感興趣的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10js 手機(jī)號(hào)碼合法性驗(yàn)證代碼集合
下面是JS驗(yàn)證電話號(hào)碼的代碼,很實(shí)用,獻(xiàn)給大家2012-09-09js中g(shù)etter和setter用法實(shí)例分析
這篇文章主要介紹了js中g(shù)etter和setter用法,結(jié)合實(shí)例形式分析了javascript中g(shù)etter和setter的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-08-08JS前端實(shí)現(xiàn)留言板功能的方法總結(jié)
留言板的主要使用場景是為用戶提供一個(gè)在網(wǎng)站或應(yīng)用上留言的平臺(tái),本文主要為大家介紹了四個(gè)常見的前端實(shí)現(xiàn)留言板功能的方法,希望對(duì)大家有所幫助2023-11-11js 實(shí)現(xiàn)watch監(jiān)聽數(shù)據(jù)變化的代碼
這篇文章主要介紹了js 實(shí)現(xiàn)watch監(jiān)聽數(shù)據(jù)變化的代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10微信小程序?qū)崿F(xiàn)導(dǎo)航功能的操作步驟
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)導(dǎo)航功能的操作步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03