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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
jquery.validate使用攻略 第三部
Jul 01 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
jQuery随机切换图片的小例子
Apr 18 Javascript
javascript删除option选项的多种方法总结
Nov 22 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 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
FleaPHP的安全设置方法
2008/09/15 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
学习php开源项目的源码指南
2014/12/21 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
营销与策划应届生求职信
2013/11/04 职场文书
工程部经理岗位职责
2013/12/08 职场文书
清洁工表扬信
2014/01/08 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python