js+html实现点名系统功能


Posted in Javascript onNovember 05, 2019

本文实例为大家分享了js+html实现点名系统功能的具体代码,供大家参考,具体内容如下

前言:实现一个简单的点名系统

需求分析:

1、两个按钮实现随机点名的开始和结束(onclick()方法)
2、每一个名字需要放在一个单独的盒子中并被一个div所包裹,以便于统一格式(动态生成div)
3、当随机开始时,随机选取一条数据,并将该条数据所在的div背景颜色更改(random()函数获得随机数,setTimeout()重复调用)
4、随机结束时将当前的数据显示出来(alert())

下面开始实现

1.准备数据并编写HTML页面

将所有的数据放在一个数组中,便于后面根据角标随机选取数据

<button οnclick="startF2()">开始</button>
<button οnclick="endF2()">结束</button>
<div id="fa">
 
</div>
//JS中准备数据
//准备数据
var arr = ["1", "2", "3", "4", "5", "6"];
var index = -1; //标记被选中的块的id,下一次循环时将该块的背景改为原来的颜色
var time;

2.在页面加载时动态得将数据放在div中展示出来

需要用到onload()方法在页面加载时同时调用初始化数据的方法

function init() {
 //将数组显示在页面上
 for(var i = 0; i < arr.length; i++) {
 //获取父容器
 var fa = document.getElementById("fa");
 //创建小div
 var div = document.createElement("div");
 //设置id属性,方便寻找
 div.id = "id" + i;
 div.className = "box"; //方便给小div设置样式
 //设置小div中显示的内容
 div.innerHTML = arr[i];
 //将小div放在父容器中
 fa.appendChild(div);
 }
 
}

此时页面上应该可以将数据全部显示出来

3.编写点击按钮时触发的开始随机和结束随机的方法

开始随机方法

function nowfind() { 
 if(index != -1) {
 //将上一个选中的div的背景还原
 document.getElementById("id" + index).style.backgroundColor = "gray";
 }
 //随机数
 var num = Math.floor(Math.random() * arr.length);
 index = num; //记录被选中的div的id
 //获取对应的div
 var div = document.getElementById("id" + num);
 //设置背景颜色
 div.style.backgroundColor = "pink";
}
 
function startF2() {
 //调用计时器重复调用nowfind方法
 time = setInterval("nowfind()",100);//赋值给变量以便于关闭调用
}

nowfind()方法是实现一次随机获取,startF2()方法是利用setInterval()方法周期性得调用nowfind()方法

nowfind()中进行下一次循环的时候必须要将上一次选取的数据所在的div背景改变回来,否则最终会变成同一色.并且随机数的选取应该采用floor()方法向下取整

结束随机方法

function endF2() {
 //停止随机获取姓名
 clearInterval(time);
 alert("请"+arr[index]+"同学回答问题");
}

结束时将数据输出即可

点名系统实现.

效果如下:

随机前:

js+html实现点名系统功能

随机中:

js+html实现点名系统功能

随机结束:

js+html实现点名系统功能

完整代码如下:

<!DOCTYPE html>
<html>
 
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script type="text/javascript">
  //准备数据
  var arr = ["1", "2", "3", "4", "5", "6"];
  var index = -1; //标记被选中的块的id,下一次循环时将该块的背景改为原来的颜色
  var time;
  function nowfind() {
 
  if(index != -1) {
   //将上一个选中的div的背景还原
   document.getElementById("id" + index).style.backgroundColor = "gray";
  }
  //随机数
  var num = Math.floor(Math.random() * arr.length);
  index = num; //记录被选中的div的id
  //获取对应的div
  var div = document.getElementById("id" + num);
  //设置背景颜色
  div.style.backgroundColor = "pink";
  }
 
  function startF2() {
  //调用计时器重复调用nowfind方法
  time = setInterval("nowfind()",100);//赋值给变量以便于关闭调用
  }
 
  function endF2() {
  //停止随机获取姓名
  clearInterval(time);
  alert("请"+arr[index]+"同学回答问题");
  }
 
  function init() {
  //将数组显示在页面上
  for(var i = 0; i < arr.length; i++) {
   //获取父容器
   var fa = document.getElementById("fa");
   //创建小div
   var div = document.createElement("div");
   //设置id属性,方便寻找
   div.id = "id" + i;
   div.className = "box"; //方便给小div设置样式
   //设置小div中显示的内容
   div.innerHTML = arr[i];
   //将小div放在父容器中
   fa.appendChild(div);
  }
 
  }
 </script>
 <style type="text/css">
  .box {
  width: 100px;
  height: 50px;
  background-color: gray;
  text-align: center;
  line-height: 50px;
  margin: 10px;
  float: left;
  }
 </style>
 </head>
 
 <body οnlοad="init()">
 <button οnclick="startF2()">开始</button>
 <button οnclick="endF2()">结束</button>
 <div id="fa">
 
 </div>
 </body>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Mootools 1.2教程(2) DOM选择器
Sep 14 Javascript
基于JQuery制作的产品广告效果
Dec 08 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
JavaScript必知必会(六) delete in instanceof
Jun 08 Javascript
js给table赋值的实例代码
Oct 13 Javascript
canvas绘制环形进度条
Feb 23 Javascript
JS实现图片拖拽交换效果
Nov 30 Javascript
使用apifm-wxapi快速开发小程序过程详解
Aug 05 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 #Javascript
在Vue mounted方法中使用data变量详解
Nov 05 #Javascript
解决vue项目F5刷新mounted里的函数不执行问题
Nov 05 #Javascript
vue input标签通用指令校验的实现
Nov 05 #Javascript
vue子传父关于.sync与$emit的实现
Nov 05 #Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 #Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 #Javascript
You might like
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
浅谈python常用程序算法
2019/03/22 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python 通过exifread读取照片信息
2020/12/24 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
影视艺术学院毕业生自荐信
2013/11/13 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
英雄儿女观后感
2015/06/09 职场文书
李强为自己工作观后感
2015/06/11 职场文书
辞职离别感言
2015/08/04 职场文书
德能勤绩工作总结
2015/08/11 职场文书
初中物理教学反思
2016/02/19 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Go语言读取txt文档的操作方法
2022/01/22 Golang
python 镜像环境搭建总结
2022/09/23 Python