JS实现随机点名器


Posted in Javascript onApril 12, 2020

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

实现一个简单的随机点名器

需求分析:

两个按钮实现随机点名的开始和结束
创建ul元素,添加到父级div中,实现了每个名字需要放在一个单独的盒子中
根据随机数进行随机选择,(涉及到了两个函数 setInterval clearInterval)在选择之前,先清空盒子的所有类样式,如果被选中,则重新赋予类样式
当点击停止按钮时,根据上一步拥有重新选择出来的li标签获取标签内容,并且直接可以展示到对应的文本框。

下面开始实现

1.编写html页面

<div id="dv">
 <input type="button" value="开始点名" id="btu">
 <input type="button" value="停止" id="btu1">
 <div class="luc">你将会是下一个幸运儿吗?请看大屏幕</div>
 <div class="ch">
 <span class="name"></span>
 </div>
</div>

2.页面css样式

*{
 margin: 0px;
 padding: 0px;
}
body{
 background-color: cornsilk;
}
#dv{
 width: 800px;
 margin: 20px auto;
 border: 4px solid darkviolet;
 text-align: center;
}
ul li{
 vertical-align: top;
 display: inline-block;
 width: 100px;
 height: 50px;
 border-radius: 35%;
 border: 3px dashed palevioletred;
 text-align: center;
 line-height: 50px;
 margin: 5px 5px;
}
li.change{
 background-color: greenyellow;
 font-size: 15px;
 color: black;
 font-weight: bolder;
}
#btu,#btu1{
 width: 100px;
 height: 50px;
 font-size: 15px;
 border-radius: 10px;
 cursor: pointer;
 margin: 10px 50px 0 50px;
 color: brown;
 background-color: pink;
}
.ch{
 position: relative;
 width: 150px;
 height: 150px;
 border-radius: 10px;
 margin: 12px auto;
 border: 2px solid yellow;
}
.luc{
 font-size: 20px;
 font-weight: bold;
 margin: 10px auto;
 text-align: center;
 color: green;
}
.name{
 position: absolute;
 font-size: 35px;
 left: 40px;
 top: 50px;
}

3.js代码

DOM获取对应元素

//获取dv元素
var dv=document.getElementById("dv");
//获取点击开始按钮
var btu=document.getElementById("btu");
//获取点击结束按钮
var btu1=document.getElementById("btu1");

创建ul列表,并且构建li数组 这一步其实是在页面加载之后浏览器才实现的

//创建ul列表
var ula=document.createElement("ul");
//将ul追加到父级元素div中
dv.appendChild(ula);
//获取js中插入的Li标签;
var oLi=document.getElementsByTagName("li");
//插入数组
var arr=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]
//动态创建li,追加到ul
for(var i=0;i<arr.length;i++){
 //创建li标签
 var liObj=document.createElement("li");
 liObj.innerText=arr[i];
 ula.appendChild(liObj);
}

点击开始按钮开始随机选择

//声明timer
var timer = null;
//点击开始进行随机选择
btu.onclick=function () {
 //每次运行之前清除timer;
 clearInterval(timer);
 //设置定时器
 timer=setInterval(function () {
  //根据数组长度范围生成随机数
  var i = Math.floor(Math.random()*arr.length);
  //通过for循环清空所有class类样式
  for(var j=0;j<oLi.length;j++){
   oLi[j].removeAttribute("class");
  }
  //为随机选择的li重新设置类样式
  oLi[i].className="change";
 },50);
};

点击结束按钮停止选择

btu1.onclick=function () {
 //清除timer;
 clearInterval(timer);
 //根据类样式找到选中的元素
 var choise = document.getElementsByClassName("change")[0];
 //获取选中元素的内容
 var name=choise.innerText;
 //获取选中展示位置
 var nameSpan = document.getElementsByClassName('name')[0];
 //位置添加内容
 nameSpan.innerText=name+"号";
}

效果图如下:

JS实现随机点名器

以上就是所有的代码,不周之处请教之,思想需要碰撞,知识需要交流嘿嘿,再分享一句今日正能量小金句:当前你所遇见的所有困境,都将成为你以后不断上升的阶梯;加油!

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

Javascript 相关文章推荐
利用jquery操作select下拉列表框的代码
Jun 04 Javascript
深入理解JavaScript的React框架的原理
Jul 02 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
javascript实现标签切换代码示例
May 22 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
javascript正则表达式中分组详解
Jul 17 Javascript
Vue中如何实现proxy代理
Apr 20 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
Feb 02 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
Apr 15 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
js实现无限瀑布流实例方法
Sep 16 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
微信小程序实现抖音播放效果的实例代码
Apr 11 #Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 #Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 #Javascript
js函数柯里化的方法和作用实例分析
Apr 11 #Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 #Javascript
JavaScript运行机制实例分析
Apr 11 #Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 #Javascript
You might like
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
python解析html开发库pyquery使用方法
2014/02/07 Python
Python性能优化技巧
2015/03/09 Python
用Python实现KNN分类算法
2017/12/22 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Python解析多帧dicom数据详解
2020/01/13 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
python基于openpyxl生成excel文件
2020/12/23 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
佳能德国网上商店:Canon德国
2017/03/18 全球购物
耐克中国官方商城:Nike中国
2018/10/18 全球购物
UNIX命令速查表
2012/03/10 面试题
幼儿园春游活动方案
2014/01/19 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
我的画教学反思
2014/04/28 职场文书
转让协议书范本
2014/09/13 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技