js+html实现点名系统功能
本文实例为大家分享了js+html实现点名系统功能的具体代码,供大家参考,具体内容如下
前言:实现一个简单的点名系统
需求分析:
1、两个按钮实现随机点名的开始和结束(onclick()方法)
2、每一个名字需要放在一个单独的盒子中并被一个div所包裹,以便于统一格式(动态生成div)
3、当随机开始时,随机选取一条数据,并将该条数据所在的div背景颜色更改(random()函数获得随机数,setTimeout()重复调用)
4、随机结束时将当前的数据显示出来(alert())
下面开始实现
1.准备数据并编写HTML页面
将所有的数据放在一个数组中,便于后面根据角标随机选取数据
//JS中准备数据 //准备数据 vararr=["1","2","3","4","5","6"]; varindex=-1;//标记被选中的块的id,下一次循环时将该块的背景改为原来的颜色 vartime;
2.在页面加载时动态得将数据放在div中展示出来
需要用到onload()方法在页面加载时同时调用初始化数据的方法
functioninit(){ //将数组显示在页面上 for(vari=0;i此时页面上应该可以将数据全部显示出来
3.编写点击按钮时触发的开始随机和结束随机的方法
开始随机方法
functionnowfind(){ if(index!=-1){ //将上一个选中的div的背景还原 document.getElementById("id"+index).style.backgroundColor="gray"; } //随机数 varnum=Math.floor(Math.random()*arr.length); index=num;//记录被选中的div的id //获取对应的div vardiv=document.getElementById("id"+num); //设置背景颜色 div.style.backgroundColor="pink"; } functionstartF2(){ //调用计时器重复调用nowfind方法 time=setInterval("nowfind()",100);//赋值给变量以便于关闭调用 }nowfind()方法是实现一次随机获取,startF2()方法是利用setInterval()方法周期性得调用nowfind()方法
nowfind()中进行下一次循环的时候必须要将上一次选取的数据所在的div背景改变回来,否则最终会变成同一色.并且随机数的选取应该采用floor()方法向下取整
结束随机方法
functionendF2(){ //停止随机获取姓名 clearInterval(time); alert("请"+arr[index]+"同学回答问题"); }结束时将数据输出即可
点名系统实现.
效果如下:
随机前:
随机中:
随机结束:
完整代码如下:
//准备数据 vararr=["1","2","3","4","5","6"]; varindex=-1;//标记被选中的块的id,下一次循环时将该块的背景改为原来的颜色 vartime; functionnowfind(){ if(index!=-1){ //将上一个选中的div的背景还原 document.getElementById("id"+index).style.backgroundColor="gray"; } //随机数 varnum=Math.floor(Math.random()*arr.length); index=num;//记录被选中的div的id //获取对应的div vardiv=document.getElementById("id"+num); //设置背景颜色 div.style.backgroundColor="pink"; } functionstartF2(){ //调用计时器重复调用nowfind方法 time=setInterval("nowfind()",100);//赋值给变量以便于关闭调用 } functionendF2(){ //停止随机获取姓名 clearInterval(time); alert("请"+arr[index]+"同学回答问题"); } functioninit(){ //将数组显示在页面上 for(vari=0;i .box{ width:100px; height:50px; background-color:gray; text-align:center; line-height:50px; margin:10px; float:left; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。