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 相关文章推荐
一个可以显示阴历的JS代码
Mar 05 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js innerHTML 改变div内容的方法
Aug 03 Javascript
jQuery中wrapAll()方法用法实例
Jan 16 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 Javascript
vue路由--网站导航功能详解
Mar 29 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
原生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实现维护文件代码
2007/06/14 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
服务器web工具 php环境下
2010/12/29 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
php两种无限分类方法实例
2015/04/21 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python实现大转盘抽奖效果
2019/01/22 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
自主招生自荐信格式
2013/12/03 职场文书
国培计划培训感言
2014/03/11 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书