阅读 295

js实现一个简易的点名器(js随机点名怎么写代码)

先看效果图

2.png

实现原理

  • 按钮点击生成所有名字数值范围内的随机数,每一个数字就代表每个人名的索引

  • 所有名字保存在一个一维数组arr内,生成某个数字n后把当前的数字n传给对应的arr[n],修改它的背景色

  • 定时器的开启来实现动态的跳动选择,每次点击开始按钮要判断定时器是否开启,若开启则关闭清空

废话不说????上代码

结构和样式

 <!-- HTML结构 -->  <div class="wrapper">     <!-- 标题部分 -->     <h1 style="text-align: center;">***标题自拟***</h1>     <!--       每一个名字就是一个li      -->     <ul class="box">     </ul>     <div class="click">       <!-- 按钮:开始和停止按钮 -->       <button class="start">开始/停止</button>     </div>   </div> 复制代码

 /* css样式 */   body {     background-color: rgb(204, 195, 195);   }   /* 点名器主界面 */   .wrapper {     margin: 100px auto;     border: 1px solid #ddd;     width: 1500px;     text-align: center;     position: relative;   }   /* 包裹所有li的容器 */   .box {     width: 1000px;     margin: 0 auto;   }   /* 每个li的样式 */   .box li {     vertical-align: top;     display: inline-block;     width: 100px;     height: 50px;     border: 2px solid rgb(92, 147, 163);     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: rgb(30, 17, 209);     background: #eee;     box-shadow: 0 15px 30px rgb(0 0 0 / 15%);     transition: all .5s;   }   .wrapper button {     display: inline-block;   }   .wrapper .click:hover button {     color: #eedf10;   } 复制代码

js样式

 /*js部分*/  //准备数据     var nameString = new String(       "小橘子,白勇太,恩佐,伊莲,妲己,蔡文姬,董卓,曹操,孙尚香,诸葛亮,司马懿,司马昭,刘备,刘婵,关羽,张飞,许褚,项羽,刘邦,雅典娜,赵信,亚瑟,嬴政,刘彻"     );     // 获取ul,存名字的父类     var box = document.querySelector(".box")     //获取开始/停止的按钮     var start = document.querySelector(".start");     //将数据字符串按照逗号为间隔变成一个数组     var arr = nameString.split(",")     //遍历数组,将数组中每一个元素前后加上li标签。     var str = "";/*str保存内容和标签*/     for (var i = 0; i < arr.length; i++) {       str += `<li>${arr[i]}</li>`     }     // 讲保存的内容和标签插入box中(将所有li以及li中的内容保存到ul中)     box.innerHTML = str;     //保存上一次幸运同学的下标。     var last_index = 0;     // 保存定时器的ID     var timer = null;     start.onclick = function () {       //已经开启了定时器,则点击start按钮,表示关闭,反之,表示开启定时器。       //如何判断是否开启了定时器?  判断是否有这个定时器的ID       if (timer) {         //定时器已经开启了,我们需要关闭         clearInterval(timer)         //将timer的值清空         timer = null;       } else {         //定时器没有开启,我们需要开启         timer = setInterval(function () {           //生成随机数,作为索引去找对应的学生           var index = getRandom(0, arr.length - 1);           //获取所有的li标签。           var lis = document.querySelectorAll("ul.box>li");           //在生成新的幸运同学之前,需要将之前的幸运同学的颜色去掉           lis[last_index].style.backgroundColor = "";           //给新的同学加上颜色           lis[index].style.backgroundColor = "green";           //将新同学的下标赋值给 last_index           last_index = index;         }, 20)       }     }     //用于生成n~m之间的随机数     function getRandom(n, m) {       return Math.floor(Math.random() * (m - n + 1) + n);     }


作者:Onion韩
链接:https://juejin.cn/post/7031704192100073479


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐