html 抽签分小组代码,JavaScript实现班级抽签小程序

本文实例为大家分享了JavaScript实现班级抽签小程序的具体代码,供大家参考,具体内容如下

项目展示

项目中假设一个班只有三十个人

bb66f4b433574ef9066b3e991bc3ed96.png

1baf296a941b2ef64ca490151939474d.png

07ad9e4e1216caa61050c329d9eb8882.png

html结构

请问你要抽几个xx班的小宝贝呢?

开始抽签

制作者:chenyu-max

CSS层叠样式

.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;

}

JS逻辑

获取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 = []; // 存放抽取处的学号

var count = 0; // 计数器,用以 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);

抽奖逻辑

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 = " 恭喜以下小可爱/帅哥 被抽中! " + str;

} else {

// 若不是,则输出错误提示

// 人数可以修改

viewDiv.innerHTML = "请输入正确的人数(1 ~ 30)哦";

}

}

增加功能

document.onkeydown = function(e) {

// 摁下回车键 触发 btn 的onclick事件

if (e.keyCode == 13) {

btn.onclick();

}

}

全部代码

给xx班小宝贝来个抽签

.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;

}

请问你要抽几个xx班的小宝贝呢?

开始抽签

制作者:chenyu-max

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 = " 恭喜以下小可爱/帅哥 被抽中! " + str;

} else {

// 若不是,则输出错误提示

// 人数可以修改

viewDiv.innerHTML = "请输入正确的人数(1 ~ 30)哦";

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值