JavaScript实现随机点名程序


Posted in Javascript onMarch 25, 2020

本文实例为大家分享了js实现随机点名程序的具体代码,供大家参考,具体内容如下

效果:

JavaScript实现随机点名程序

录制的gif效果图没那么理想,其实速度是比这个快的

思路:

1.定义一个数组,存放名单
2.启动定时器,设定间隔时间不断调用函数
3.Math.random()获取随机下标,根据下标的随机变换取出数组中对应的元素
4.逻辑代码完成后,通过DOM对象把变化的结果呈现在页面上

JS代码:

<script>
var arr = ["唐僧", "孙悟空", "猪八戒", "沙悟净", "白骨精", "玉皇大帝", "红孩儿", "白骨精", "太上老君"]

var myTimer = null //定时器编号

// 既是启动定时器的函数,也是停止定时器的函数
function goAndStop(){
 // 如果当前没有定时器在执行,则启动,否则,停止定时器;
 if(myTimer == null){
  // 启动定时器,随机下标,取出名字
  myTimer = setInterval(function(){
   // 1、随机下标
   var index = parseInt(Math.random()*arr.length)

   // 2、根据下标取出学生的姓名,显示在页面上
   document.getElementById("stuName").innerHTML = arr[index]

  },10);

  //启动定时器的同时,改变按钮状态,为下次单击做准备
  document.getElementById("btn").value = "停 止"
 }else{
  // 当前若有有定时器在执行,则停止定时器, 恢复初始状态
  window.clearInterval(myTimer)
  myTimer = null
  document.getElementById("btn").value = "开 始"
 }
}
</script>

HTML + CSS + JS 源码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style>
 #box{
  width:200px;
  height: 300px;
  margin: 100px auto;
 }

 #stuName{
  width: 100%;
  height: 80px;
  border: 2px solid gray;
  line-height: 80px;
  text-align: center;
  font-size: 30px;
  color:orange;
  font-weight: bold;
 }

 input{
  margin-top:30px;
  width: 100%;
  height: 50px;
  font-size: 20px;
  font-weight: bold;
 }

 </style>
</head>
<body>
 <div id="box">
  <div id="stuName">
   随机名单
  </div>
  <input id="btn" type="button" value="开 始" onclick="goAndStop()">
 </div>
</body>
</html>
<script>
var arr = ["唐僧", "孙悟空", "猪八戒", "沙悟净", "白骨精", "玉皇大帝", "红孩儿", "白骨精", "太上老君"]

var myTimer = null 
function goAndStop(){
 if(myTimer == null){
  myTimer = setInterval(function(){
   var index = parseInt(Math.random()*arr.length)

   document.getElementById("stuName").innerHTML = arr[index]

  },10);
  document.getElementById("btn").value = "停 止"
 }else{
  window.clearInterval(myTimer)
  myTimer = null
  document.getElementById("btn").value = "开 始"
 }
}
</script>

这是我的一些思路,分享给大家!

如果你有更好的方法,欢迎下方留言相互交流!

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

Javascript 相关文章推荐
javascript Array数组对象的扩展函数代码
May 22 Javascript
JavaScript中window、doucment、body的解释
Aug 14 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
javascript如何写热点图
Dec 08 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
JS中的作用域链
Mar 01 Javascript
实例详解display:none与visible:hidden的区别
Mar 30 Javascript
微信小程序之网络请求简单封装实例详解
Jun 28 Javascript
Node.js 回调函数实例详解
Jul 06 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 #Javascript
JS实现网页时钟特效
Mar 25 #Javascript
js实现小时钟效果
Mar 25 #Javascript
vue页面更新patch的实现示例
Mar 25 #Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 #Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 #Javascript
微信小程序scroll-view点击项自动居中效果的实现
Mar 25 #Javascript
You might like
谈谈PHP的输入输出流
2007/02/14 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python实现线程状态监测简单示例
2018/03/28 Python
Django实现文件上传下载
2019/10/06 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
倡议书格式范文
2014/04/14 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
骨干教师个人总结
2015/02/11 职场文书
投资申请报告
2015/05/19 职场文书
读书笔记怎么写
2015/07/01 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL