前端开发:JavaScript实现随机抽奖小应用 - Web前端
作者:98wpeu发布时间:2026-09-06分类:网页前端技术浏览:8
导读:前端开发:javascript实现随机抽奖小应用。比如您的公司年终会举行年会,弄个幸运同事,几等奖啥的,可以拿来试试。废话不多说,直接上DemO咯。<!DOCtype htm...

前端开发: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>试试吧!
相关推荐
- react开发小应用:动态添加样式,点击按钮让文字显示隐藏为demo - Web前端
- 网站SEO优化:关于重复性内容6个注意点 - Web前端
- vue开发小TIPS:可拖拽的弹框 - Web前端
- vue开发:了解下vue中的双向数据绑定原理 - Web前端
- 关于在nodejs里使用ES6模块后引出的一系列“奇案” - Web前端
- 了解下Google搜索算法:蜂鸟Hummingbird - Web前端
- 关于WordPress SEO优化那点事:分享20个技巧给大家 - Web前端
- vue开发TIPS:了解下watch和computed - Web前端
- vue开发:了解Vue 3中的一些新特性以及和Vue 2的对比 - Web前端
- 使用JavaScript的不可变数组方法编写更干净的代码 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


