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 相关文章推荐
科讯商业版中用到的ajax空间与分页函数
Sep 02 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
Aug 07 Javascript
按下Enter焦点移至下一个控件的实现js代码
Dec 11 Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
JavaScript位置参数实现原理及过程解析
Sep 14 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python在不同层级目录import模块的方法
2016/01/31 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
大学生求职推荐信
2013/11/27 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
抵押贷款承诺书
2014/05/30 职场文书
电教室标语
2014/06/20 职场文书
求职推荐信范文
2015/03/27 职场文书
python实现三次密码验证的示例
2021/04/29 Python
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js
python如何将mat文件转为png
2022/07/15 Python