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中对数组的操作代码
Aug 12 Javascript
javascript 小数取整简单实现方式
May 30 Javascript
ECMAScript 5中的属性描述符详解
Mar 02 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
vue2实现数据请求显示loading图
Nov 28 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
微信小程序之swiper滑动面板用法示例
Dec 04 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
javascript this指向相关问题及改变方法
Nov 19 Javascript
vue实现简易音乐播放器
Aug 14 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代码重构工具推荐
2014/10/14 PHP
PHP数组函数知识汇总
2016/05/12 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
简单学习Python多进程Multiprocessing
2017/08/29 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
浅析Python四种数据类型
2018/09/26 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
小学课外阅读总结
2014/07/09 职场文书
家庭教育的心得体会
2014/09/01 职场文书
2014年政工师工作总结
2014/12/18 职场文书
绵山导游词
2015/02/05 职场文书
党员进社区活动总结
2015/05/07 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书