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 相关文章推荐
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
Jquery异步请求数据实例代码
Dec 28 Javascript
jquery 单引号和双引号的区别及使用注意
Jul 31 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
Sep 26 Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 Javascript
jQuery使用post方法提交数据实例
Mar 25 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
es6学习之解构时应该注意的点
Aug 29 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
JS实现马赛克图片效果完整示例
Apr 13 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
PHP类的使用 实例代码讲解
2009/12/28 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
php多文件上传下载示例分享
2014/02/20 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
python socket 超时设置 errno 10054
2014/07/01 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python函数与方法的区别总结
2019/06/23 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
大学生职业规划论文
2014/01/11 职场文书
学习十八大报告感言
2014/02/28 职场文书
教师党员公开承诺书
2014/03/25 职场文书
学期评语大全
2014/04/30 职场文书
航空学院求职信
2014/06/11 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
入团申请书格式
2019/06/20 职场文书
浅析Python OpenCV三种滤镜效果
2022/04/11 Python
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏