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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。