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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
Javascript this指针
Jul 30 Javascript
JQuery this 和 $(this) 的区别
Aug 23 Javascript
jQuery Validation实例代码 让验证变得如此容易
Oct 18 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
Sep 05 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
Apr 25 Javascript
js实现微信分享代码
Oct 11 Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
基于Vue实现电商SKU组合算法问题
May 29 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 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
ThinkPHP缓存方法S()概述
2014/06/13 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
js变换显示图片的实例
2013/04/16 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
python实现聚类算法原理
2018/02/12 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
HashMap和Hashtable的区别
2013/05/18 面试题
大学生表扬信范文
2014/01/09 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
保洁员岗位职责
2015/02/04 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书