用JS来制作一个随机点名器的方法及代码是什么
Admin 2022-05-30 群英技术资讯 747 次浏览
最近学了一点前端内容,老师让用js设计一个班里的随机点名器。就尝试写了一个,具体实现效果如图:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>点名</title> <link href="../callTheRoll/bootstrap-3.3.7-dist/css/bootstrap.min.css" type="text/css" rel="stylesheet"> </head> <style> div { float: left; } button { background-color: moccasin; margin: 30px; height: 50px; width: 150px; border: rgb(245, 165, 165) 1px solid; font-size: 18px; } .wai { margin-left: 200px; width: 1300px; } .name { height: 40px; width: 100px; margin: 4px; padding: 10px; font-size: 18px; background-color: mistyrose; } </style> <!-- onload : 事件会在页面或图像加载完成后立即发生。 --> <body onload="A()"> <div class="wai" align="center"> <table> <button class="start" onclick="start()">开始</button> <button class="end" onclick="end()">结束</button> </table> <div id="names"></div> </div> <script type="text/javascript"> var nameArr = [ "空", "张家家", "许雪雪", "王橘橘", "陈韵", "马本本", "张志志", "唐豪豪", "高洋洋", "朱阳阳", "王山山", "空", "尹方方", "王零零", "李远远", "吴杰", "李玉玉", "李雯雯", "步一一", "崔明明", "肖金金", "陈晴晴", "赵飞飞", "空", "李英英", "李洋阳", "刘俊郡", "王泊", "廉云云", "王子俊", "康三三", "李浩浩", "张艺艺", "徐叶叶", "李宏宏", "雷康康", "张青青", "王乐乐", "空", "杨童童", "张君君", "孙明", "何龙龙", "郑轩轩", "任平平", "孙超超", "空", "贺涛涛", "空", "空", "空", "空", "熊秀秀", "薄嘉嘉", "薛万万", "尹飞", "张杰", "胡万万", "空", "马文文" ]; var index = 0; var k = 1; // 记录不为空的座位 // 生成作为表 function A() { for (var i = 0; i < nameArr.length; i++) { if (nameArr[i].length > 1) { // 创建div标签(html元素) var div = document.createElement("div"); div.setAttribute("class", "name"); div.setAttribute("id", index++ + ""); var text = document.createTextNode(nameArr[i]); div.appendChild(text); // 添加元素 document.getElementById("names").appendChild(div); // 每排12人,所以每隔12,添加一个换行符 if ((i + 1) % 12 == 0) { var br = document.createElement("br"); document.getElementById("names").appendChild(br); } k++; // 添加一个学生,k自增1,记录学生(不为空的座位)个数 } else { var div = document.createElement("div"); div.setAttribute("class", "name"); // div.setAttribute("id", index++ + ""); // 如果当前元素长度小于等于1时,则代表当前座位为空,所以不给当前div添加id属性,方便后续随机选人时,避开空座位 var text = document.createTextNode(nameArr[i]); div.appendChild(text); // 添加元素 document.getElementById("names").appendChild(div); if ((i + 1) % 12 == 0) { var br = document.createElement("br"); document.getElementById("names").appendChild(br); } } } } // 定义一个id标志 var index2 = -1; function restore() { // 还原颜色 if (index2 != -1) { document.getElementById(index2 + "").style.cssText = "background: mistyrose"; } // 生成随机数,用K生成随机数,此时K代表不为空的作为个数 var num = Math.floor(Math.random() * k); document.getElementById(num + "").style.cssText = "background-color:red"; index2 = num; // 记录当前被选中的id,在下次执行该函数时,将颜色还原 } var time; // 用于接收计时器,方便关计时器时操作 var n = 1; // 定义状态正在执行 n=0 , 已经结束 n=1 function start() { if (n == 1) { // DOM setInterval()方法 计时器 time = setInterval("restore()", 80); n = 0; } } function end() { if (n == 0) { clearInterval(time); alert("请" + document.getElementById(index2 + "").innerHTML + "同学回答问题"); n = 1; } } </script> </body> </html>
在这里对计时器做一下介绍:
setInterval(code,millisec),这两个参数都是必须的; 第一个参数是要调用的函数或要执行的代码串。 第二个参数是毫秒值,表示的是隔多久执行一次code(参数一)。 clearInterval(id_of_setinterval),参数是必须的; 这个参数表示setInterval返回的ID值,即在代码中我设置的time
(本人是小白一个,所以写的有什么问题也请各位指出,可以让我及时改正,谢谢)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
用jQuery怎样验证输入是不是数字?在登录注册页面,我们通常需要对输入验证,那么我们怎样知道输入的是不是数字呢?下文给大家分享一个简单的验证数字示例,有一定参考价值,需要的朋友可以参考看看。
这篇文章主要给大家分享的是vue项目实现页面跳转的方法,vue-router是前端开发中用来实现路由页面跳转的一个模块。下面小编将带来如何在已经创建好的vue-router项目基础下实现页面跳转,需要的朋友可以参考一下
JavaScript中undefined和is not defined的区别与异常处理,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
在实际的应用中,有一些需求需要我们对二维数组、多维数据做降维,一些朋友可能对于数组降维的方法不是很了解,对此下面小编就给大家分享一下,需要的朋友可以参考。
前言在直播中,创建房间,获取房间,都需要服务器,因此需要搭建Web服务器Web服务器能处理HTTP请求的服务器都可以叫Web服务器Node.js介绍Node.js什么时候出现,2009年,Ryan Dahl(瑞恩·达尔)在GitHub上发布了最初版本的部分Node.
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008