js实现随机点名系统(实例讲解)


Posted in Javascript onOctober 18, 2017

废话不多说,直接上代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>随机点名</title>
<style type="text/css">
td{
text-align: center;
}
</style>
</head>
<body>
<table width="760" border="1" height="460" align="center">
<h1 align="center">随机点名系统</h1>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<div align="center">
<br/>
<br/>
<input type="button" value="随机抽取" onclick="selectRandom();"/>
<input type="button" value="打乱顺序" onclick="Upsetorder();"/>
<br/>
<br/>
<input type="button" value="快速抽取" onclick="Quickextr();"/>
<input type="button" value="停止抽取" onclick="Stopextr();"/>
</div>
<script type="text/javascript">
var classMate = ["周远康","刘婷婷","戴娜","范凯","向彬",
"胡波","胡辉","黄缘平","刘云","刘嘉鑫",
"赵福全","王小妹","苏伟","李辉","曾伟",
"李佳晓","钟仕文","张志强","袁鑫豪","余日成",
"付立金","彭福康","邓慧佳","曹蓉","刘未东",
"桂义","彭俊斌","周康华","曹增","蒋煜"];
//定义一个变量存随机数组
var indexArr;
//打乱顺序
function Upsetorder(){
alert(1);
//初始化数组
indexArr = [];
//获取新的随机数
var rd = parseInt(Math.random()*classMate.length);
while(true){
do{
var falg = true;
//循环获得每一个下标
for (var i = 0 ; i <classMate.length ; i++) {
//判断是否已存在这个下标,是否为重复之后 跳出
if(indexArr[i] == rd){
falg = false;
break;
}
}
//判断是否添加
if(falg){
indexArr.push(rd);
}
rd = parseInt(Math.random()*classMate.length);
}while (falg);
if(indexArr.length == classMate.length){
break;
}
}
}
//随机抽取
function selectRandom(){
var allTd = document.getElementsByTagName("td");
for (var i = 0; i < classMate.length; i++) {
allTd[i].innerHTML = classMate[indexArr[i]];
allTd[i].style.color = "#ff6633";
allTd[i].style.background = "#ff6633";
allTd[i].onclick = function (){
this.style.background = "white";
}
}
}
//快速抽取
var interId;
var count = 0;
//保存已被选出的人
var myChecked = [];
var allTd = document.getElementsByTagName("td");
function Quickextr(){
if(interId){
return;
}
//把所有的td还原为最初
interId = setInterval(function(){
for (var i = 0; i < classMate.length; i++) {
allTd[i].style.color = "#ff6633";
allTd[i].style.background = "#ff6633";
}
for (var i = 0; i < myChecked.length; i++) {
allTd[myChecked[i]].style.color = "#ff6633";
allTd[myChecked[i]].style.background = "white";
}
allTd[count%classMate.length].style.color = "white";
allTd[count%classMate.length].style.background = "white";
count++;
},1);
}
//停止抽取
function Stopextr(){
clearInterval(interId);
interId = undefined;
var checkIds = count%classMate.length==0?classMate.length-1:(count%classMate.length)-1;
allTd[checkIds].style.color = "#ff6633";
myChecked.push(checkIds);
}
</script>
</body>
</html>

以上这篇js实现随机点名系统(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
Jul 08 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
Apr 12 Javascript
js数组操作学习总结
Nov 04 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
JS正则表达式修饰符global(/g)用法分析
Dec 27 Javascript
web打印小结
Jan 11 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
jQuery UI实现动画效果代码分享
Aug 19 jQuery
Vue CLI3 开启gzip压缩文件的方式
Sep 30 Javascript
vuex 中插件的编写案例解析
Jun 10 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 Javascript
原生JS获取元素的位置与尺寸实现方法
Oct 18 #Javascript
详谈commonjs模块与es6模块的区别
Oct 18 #Javascript
从源码看angular/material2 中 dialog模块的实现方法
Oct 18 #Javascript
详解http访问解析流程原理
Oct 18 #Javascript
js实现会跳动的日历效果(完整实例)
Oct 18 #Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 #Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 #Javascript
You might like
php SQL防注入代码集合
2008/04/25 PHP
为数据添加append,remove功能
2006/10/03 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python实现复制文件到指定目录
2019/10/16 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
appium+python adb常用命令分享
2020/03/06 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
店铺转让协议书
2014/12/02 职场文书
办公用品质量保证书
2015/05/11 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
企业培训简报范文
2015/07/20 职场文书
2016年端午节寄语
2015/12/04 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers