原生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 相关文章推荐
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
js过滤HTML标签以及空格的思路及代码
May 24 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
javascript实现连续赋值
Aug 10 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
JavaScript中BOM对象原理与用法分析
Jul 09 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
Feb 23 Javascript
详解JavaScript之ES5的继承
Jul 08 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 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+Html+缓存
2006/11/25 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
webpack4实现不同的导出类型
2019/04/09 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python解释执行原理分析
2014/08/22 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
Python中正则表达式详解
2017/05/17 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
Python如何实现FTP功能
2020/05/28 Python
详解rem 适配布局
2018/10/31 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
《植树问题》教学反思
2016/03/03 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL