(编辑:jimmy 日期: 2024/11/2 浏览:2)
本文实例为大家分享了js实现随机点名器的具体代码,供大家参考,具体内容如下
此点名器开始点名后需点击停止按钮完成点名,因为是精简版没有考虑自动停止需求。姓名数据以字符串形式储存,适合小范围点名使用,有大量需求可自己适当改进。
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>随机点名生成</title> <style> /* 页面css样式 */ .wrapper { width: 800px; margin: 100px auto; border: 1px solid #ddd; text-align: center; } .box li { vertical-align: top; display: inline-block; width: 100px; height: 50px; border: 2px solid #ddd; border-radius: 15px; text-align: center; line-height: 50px; margin: 5px; } .wrapper button { border: none; width: 100px; height: 50px; border-radius: 10px; cursor: pointer; outline: none; margin-top: 20px; font-weight: bolder; color: #333; background-color: rgb(14, 146, 43); } .wrapper button { display: inline-block; } body { background-color: #eee; } </style> </head> <body> <div class="wrapper"> <h1 align="center">随机点名系统</h2> //实时显示系统时间标签 <h6 id="data" align="right"></h6> <ul class="box"></ul> <button class="start">开始</button> <button class="stop">停止</button> </div> </body> <script> //定义全局变量方便引用 var boxUl = document.getElementsByClassName('box')[0]; var start = document.getElementsByClassName('start')[0]; var stop = document.getElementsByClassName('stop')[0] var oLi = document.getElementsByTagName('li'); //数据准备 var nameString = new String("张三,李四,王五,赵六,周七,田八,国九,归零,张3,李4,王5,赵6,周7,田8,国9,归0"); var nameArr = nameString.split(","); //获取每个学生姓名添加到标签中,自动解析html标签 var str = ""; for (let i = 0; i < nameArr.length; i++) { str += "<li >" + nameArr[i] + "</li>" } boxUl.innerHTML = str; //添加开始按钮的点击事件 var timer = null; start.onclick = function () { // 设置定时器 timer = setInterval(function () { // 根据数组长度范围生成随机数 var i = Math.floor(Math.random() * nameArr.length); // 先通过for循环清空所有style属性 for (var j = 0; j < oLi.length; j++) { oLi[j].removeAttribute("style"); } // 为随机选择的li颜色属性 oLi[i].style.background = "red"; }, 150); }; // 点击停止 stop.onclick = function () { // 清空定时器停止点名 clearInterval(timer); } //页面初始化时间设置 window.onload = function () { datatime(); } //页面时间动态刷新 setInterval(datatime, 1000); function datatime() { let data = new Date(); let dataString ="现在是北京时间:" + data.toLocaleString(); document.getElementById("data").innerHTML = dataString; } </script>
附一张效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。