前端开发:JavaScript实现随机抽奖小应用。比如您的公司年终会举行年会,弄个幸运同事,几等奖啥的,可以拿来试试。
废话不多说,直接上DEMO咯。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>前端开发:JavaScript实现随机抽奖小应用 - Web前端之家www.jiangweishan.com</title> <link rel="icon" href=""> <style> .outerContainer { margin-top: 100px; } .question { margin-top: 30px; width: 100%; height: 50px; line-height: 50px; font-size: 32px; transition: all .3s linear; text-align: center; font-weight: bolder; } .number { margin-top: 30px; display: block; left: 200px; text-align: center; } .number input { height: 40px; font-size: 20px; line-height: 40px; padding-left:15px; } .btnWrapper { margin-top: 30px; width: 100%; height: 30px; text-align: center; } .btnWrapper button { border:0 none; outline: none; color: #fff; cursor: pointer; border-radius: 30px; width: 120px; height: 35px; line-height: 35px; background:#f00; font-weight:bold; } .viewDiv { margin: 50px auto; width: 900px; height: 300px; text-align: center; font-size: 30px; line-height: 50px; border: 1px solid #ddd; padding:20px 0; } .foot { margin: 0 auto; text-align: center; } </style> </head> <body> <div class="outerContainer"> <div class="question">设定中奖人数</div> <div class="number"> <input type="text" style="color: #999;" value="请输入需要的人数" onblur="if (this.value == '') {this.value = '请输入需要的人数';this.style.color = '#999';}" onfocus="if (this.value == '请输入需要的人数') {this.value = '';this.style.color = '#424242';}"> </div> <div class="btnWrapper"> <button>开始抽签</button> </div> <div class="viewDiv"></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 = []; // 存放抽取处的学号 var count = 0; // 计数器,用以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) { // 摁下回车键 触发 btn 的onclick事件 if (e.keyCode == 13) { btn.onclick(); } } btn.onclick = function() { // 检查输入的内容是否是是1~30人 // 若是班级人数不止三十人,改成 input.value < 班级人数 + 1 var check = (function() { if (input.value > 0 && input.value < 31) { return true; } else { return false; } }()); // 如果输入的是正确的,那么进行抽签 if (check) { var num = input.value; arr = []; for (var i = 0; arr.length < num; i++) { // 生成1 ~ 30 的随机数 // 需要更改人数,直接修改 乘号后面的 30 未你们班需要的人数即可 var temp = Math.floor(Math.random() * 30 + 1); // 1 ~ 30 var flag = true; arr.forEach(function(value) { // 遍历数组,防止生成的随机数和已有的数字重复 if (value == temp) { flag = false; } }) if (flag) { arr.push(temp); } } // 将抽出的人数的学号进行升序排序 arr.sort(function(a, b) { return a - b; }) var str = arr.join(", "); viewDiv.innerHTML = " <span style='color : red'>恭喜以下小可爱/帅哥 被抽中!</span> </br> " + str; } else { // 若不是,则输出错误提示 // 人数可以修改 viewDiv.innerHTML = "<span style='color : red'>请输入正确的人数(1 ~ 30)哦</span>"; } } </script> </body> </html>
试试吧!
网友评论文明上网理性发言 已有0人参与
发表评论: