原生js实现随机点名功能


Posted in Javascript onNovember 05, 2019

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

原生js实现随机点名功能

原生js实现随机点名,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>
    *{
      padding: 0;
      margin: 0;
      
    }
    .wrapper{
      width: 800px;
      margin: 10px auto;
      border: 2px solid #ccc; 
      text-align: center;
    }
    .lucking{
      width: 200px;
      height: 180px;
      border: 1px solid #000;
      position: relative;
    }
    .lucking img{
      position: absolute;
      left: 0;
      bottom: 0;
    }
    .wrapper ul li{
      width: 100px;
      height: 50px;
      line-height: 50px;
      text-align: center;
      margin: 4px;
      border:2px solid #ccc;
      border-radius: 5px;
      /* 不设置float:left的原因
      1: 浮动不能让父盒子撑开高度 
      2: display:inline-block 具有行内元素的属性特征,给父盒子加text-align:center 可使其居中
      */
      display: inline-block;
    }
    .wrapper button{
      margin-top: 20px;
      width: 80px;
      height: 40px;
      border: none;
      background-color: #ddd;
      border-radius: 5px;
      font-weight: 700;
      outline: none;
      cursor: pointer;
    }
    .wrapper .active{
      background-color: #f1084a;
      font-weight: 700;
    }
  </style>
</head>
<body>
  <div class="wrapper" id="_wrapper">
    <ul id="_ul"></ul>
    <button class="start">开始点名</button>
    <button class="stop">停止</button>
    <div class="lucking" id="_lucking">
      <p></p>
      <img src="1.gif" alt="">
    </div>
  </div>
</body>
</html>
<script>
  var array = ['杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦','李易峰','杨雨婷','张蓓','王洁','邓伦'];
  // 获取元素
  var _wrapper = document.getElementById('_wrapper');
  var ul = document.getElementById('_ul');;
  var timer = null;
  init();

  function init(){
  // 动态创建li
  for(var i = 0; i < array.length;i++)
  {
    var oli = document.createElement('li');
    oli.innerHTML = array[i];
    ul.appendChild(oli);
  }
  // 点击
    click();
  }
  function click(){
    // 获取start按钮
    var start = _wrapper.getElementsByTagName('button')[0];
    var stop = _wrapper.getElementsByTagName('button')[1];
    var lucking = document.getElementById('_lucking');
    // 定时器
    start.addEventListener('click',function(){
      clearInterval(timer);
      timer = setInterval(function(){
        // 获得随机数
        var random = Math.floor(Math.random()*array.length);
        for(var i = 0;i < array.length;i++)
        {
          ul.children[i].className = '';
        }
        ul.children[random].className = 'active';
      },50);
    });
    stop.addEventListener('click',function(){
      clearInterval(timer);
      // 找到此时的元素
      var active = document.getElementsByClassName('active')[0];
      lucking.children[0].innerText = "幸运儿:" + active.innerText;
    })
  }
</script>

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

Javascript 相关文章推荐
jquery动态改变form属性提交表单
Jun 03 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
Mar 05 Javascript
jQuery构造函数init参数分析
May 13 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
Jun 20 Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
使用JavaScript进行表单校验功能
Aug 01 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
Ajax实现局部刷新的方法实例
Mar 31 Javascript
Promise静态四兄弟实现示例详解
Jul 07 Javascript
element-ui 文件上传修改文件名的方法示例
Nov 05 #Javascript
vue keep-alive 动态删除组件缓存的例子
Nov 04 #Javascript
javascript如何实现create方法
Nov 04 #Javascript
关于vue里页面的缓存详解
Nov 04 #Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 #Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
Nov 04 #Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 #Javascript
You might like
一个PHP的String类代码
2010/04/20 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
python读写csv文件实例代码
2019/07/05 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
工作时间上网检讨书
2014/02/03 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
拆迁委托协议书
2014/09/15 职场文书
2015年人事专员工作总结
2015/04/29 职场文书