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 API 中文文档 - Panel面板
Sep 30 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
用jQuery获取table中行id和td值的实现代码
May 19 Javascript
微信小程序template模板实例详解
Oct 27 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 Javascript
三种方式清除vue路由跳转router-link的历史记录
Apr 10 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
输出控制类
2006/10/09 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python读写文件方法总结
2015/06/09 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
详解python:time模块用法
2019/03/25 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
2014离婚协议书范文
2014/09/10 职场文书
本溪水洞导游词
2015/02/11 职场文书
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL