您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)JavaScript如何實(shí)現(xiàn)班級(jí)抽簽小程序的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
項(xiàng)目中假設(shè)一個(gè)班只有三十個(gè)人
<div class="outerContainer"> <div class="question">請(qǐng)問(wèn)你要抽幾個(gè)xx班的小寶貝呢?</div> <div class="number"> <input type="text" value="請(qǐng)輸入需要的人數(shù)" onblur="if (this.value == '') {this.value = '請(qǐng)輸入需要的人數(shù)';this.style.color = '#999';}" onfocus="if (this.value == '請(qǐng)輸入需要的人數(shù)') {this.value = '';this.style.color = '#424242';}"> </div> <div class="btnWrapper"> <button>開(kāi)始抽簽</button> </div> <div class="viewDiv"></div> <div class="foot">制作者:chenyu-max</div> </div>
.outerContainer { margin-top: 100px; } .question { margin-top: 30px; width: 100%; height: 50px; line-height: 50px; font-size: 25px; transition: all .3s linear; /* 顏色變化的時(shí)候,會(huì)有個(gè)漸變的效果 */ text-align: center; } .number { margin-top: 30px; display: block; left: 200px; text-align: center; } .number input { height: 30px; font-size: 20px; line-height: 30px; } .btnWrapper { margin-top: 30px; width: 100%; height: 30px; text-align: center; } .btnWrapper button { outline: none; color: rgb(233, 8, 8); cursor: pointer; border-radius: 15px; width: 100px; height: 25px; line-height: 19px; } .viewDiv { margin: 20px auto; width: 900px; height: 300px; text-align: center; font-size: 30px; line-height: 50px; border: 1px solid black; } .foot { margin: 0 auto; text-align: center; }
獲取dom元素
var input = document.getElementsByTagName('input')[0]; var viewDiv = document.getElementsByClassName('viewDiv')[0]; var btn = document.getElementsByTagName('button')[0]; var question = document.getElementsByClassName('question')[0];
其余變量
var arr = []; // 存放抽取處的學(xué)號(hào) var count = 0; // 計(jì)數(shù)器,用以 question 的顏色修改
question的顏色變化
setInterval(function() { var temp = count % 6; switch (temp) { case 0: question.style.color = 'red'; break; case 1: question.style.color = 'green'; break; case 2: question.style.color = 'blue'; break; case 3: question.style.color = 'grey'; break; case 4: question.style.color = 'purple'; break; case 5: question.style.color = 'black'; break; default: break; } count++; }, 700);
抽獎(jiǎng)邏輯
btn.onclick = function() { // 檢查輸入的內(nèi)容是否是是1~30人 // 若是班級(jí)人數(shù)不止三十人,改成 input.value < 班級(jí)人數(shù) + 1 var check = (function() { if (input.value > 0 && input.value < 31) { return true; } else { return false; } }()); // 如果輸入的是正確的,那么進(jìn)行抽簽 if (check) { var num = input.value; arr = []; for (var i = 0; arr.length < num; i++) { // 生成1 ~ 30 的隨機(jī)數(shù) // 需要更改人數(shù),直接修改 乘號(hào)后面的 30 未你們班需要的人數(shù)即可 var temp = Math.floor(Math.random() * 30 + 1); // 1 ~ 30 var flag = true; arr.forEach(function(value) { // 遍歷數(shù)組,防止生成的隨機(jī)數(shù)和已有的數(shù)字重復(fù) if (value == temp) { flag = false; } }) if (flag) { arr.push(temp); } } // 將抽出的人數(shù)的學(xué)號(hào)進(jìn)行升序排序 arr.sort(function(a, b) { return a - b; }) var str = arr.join(", "); viewDiv.innerHTML = " <span style='color : red'>恭喜以下小可愛(ài)/帥哥 被抽中!</span> </br> " + str; } else { // 若不是,則輸出錯(cuò)誤提示 // 人數(shù)可以修改 viewDiv.innerHTML = "<span style='color : red'>請(qǐng)輸入正確的人數(shù)(1 ~ 30)哦</span>"; } }
增加功能
document.onkeydown = function(e) { // 摁下回車(chē)鍵 觸發(fā) btn 的onclick事件 if (e.keyCode == 13) { btn.onclick(); } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>給xx班小寶貝來(lái)個(gè)抽簽</title> <link rel="icon" href=""> <style> .outerContainer { margin-top: 100px; } .question { margin-top: 30px; width: 100%; height: 50px; line-height: 50px; font-size: 25px; transition: all .3s linear; text-align: center; } .number { margin-top: 30px; display: block; left: 200px; text-align: center; } .number input { height: 30px; font-size: 20px; line-height: 30px; } .btnWrapper { margin-top: 30px; width: 100%; height: 30px; text-align: center; } .btnWrapper button { outline: none; color: rgb(233, 8, 8); cursor: pointer; border-radius: 15px; width: 100px; height: 25px; line-height: 19px; } .viewDiv { margin: 20px auto; width: 900px; height: 300px; text-align: center; font-size: 30px; line-height: 50px; border: 1px solid black; } .foot { margin: 0 auto; text-align: center; } </style> </head> <body> <div class="outerContainer"> <div class="question">請(qǐng)問(wèn)你要抽幾個(gè)xx班的小寶貝呢?</div> <div class="number"> <input type="text" value="請(qǐng)輸入需要的人數(shù)" onblur="if (this.value == '') {this.value = '請(qǐng)輸入需要的人數(shù)';this.style.color = '#999';}" onfocus="if (this.value == '請(qǐng)輸入需要的人數(shù)') {this.value = '';this.style.color = '#424242';}"> </div> <div class="btnWrapper"> <button>開(kāi)始抽簽</button> </div> <div class="viewDiv"></div> <div class="foot">制作者:chenyu-max</div> </div> <script> var input = document.getElementsByTagName('input')[0]; var viewDiv = document.getElementsByClassName('viewDiv')[0]; var btn = document.getElementsByTagName('button')[0]; var question = document.getElementsByClassName('question')[0]; var arr = []; // 存放抽取處的學(xué)號(hào) var count = 0; // 計(jì)數(shù)器,用以question 的顏色修改器 setInterval(function() { var temp = count % 6; switch (temp) { case 0: question.style.color = 'red'; break; case 1: question.style.color = 'green'; break; case 2: question.style.color = 'blue'; break; case 3: question.style.color = 'grey'; break; case 4: question.style.color = 'purple'; break; case 5: question.style.color = 'black'; break; default: break; } count++; }, 700); document.onkeydown = function(e) { // 摁下回車(chē)鍵 觸發(fā) btn 的onclick事件 if (e.keyCode == 13) { btn.onclick(); } } btn.onclick = function() { // 檢查輸入的內(nèi)容是否是是1~30人 // 若是班級(jí)人數(shù)不止三十人,改成 input.value < 班級(jí)人數(shù) + 1 var check = (function() { if (input.value > 0 && input.value < 31) { return true; } else { return false; } }()); // 如果輸入的是正確的,那么進(jìn)行抽簽 if (check) { var num = input.value; arr = []; for (var i = 0; arr.length < num; i++) { // 生成1 ~ 30 的隨機(jī)數(shù) // 需要更改人數(shù),直接修改 乘號(hào)后面的 30 未你們班需要的人數(shù)即可 var temp = Math.floor(Math.random() * 30 + 1); // 1 ~ 30 var flag = true; arr.forEach(function(value) { // 遍歷數(shù)組,防止生成的隨機(jī)數(shù)和已有的數(shù)字重復(fù) if (value == temp) { flag = false; } }) if (flag) { arr.push(temp); } } // 將抽出的人數(shù)的學(xué)號(hào)進(jìn)行升序排序 arr.sort(function(a, b) { return a - b; }) var str = arr.join(", "); viewDiv.innerHTML = " <span style='color : red'>恭喜以下小可愛(ài)/帥哥 被抽中!</span> </br> " + str; } else { // 若不是,則輸出錯(cuò)誤提示 // 人數(shù)可以修改 viewDiv.innerHTML = "<span style='color : red'>請(qǐng)輸入正確的人數(shù)(1 ~ 30)哦</span>"; } } </script> </body> </html>
1.JavaScript主要用來(lái)向HTML頁(yè)面添加交互行為。 2.JavaScript可以直接嵌入到HTML頁(yè)面,但寫(xiě)成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離。 3.JavaScript具有跨平臺(tái)特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺(tái)下運(yùn)行。
感謝各位的閱讀!關(guān)于“JavaScript如何實(shí)現(xiàn)班級(jí)抽簽小程序”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。