原生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 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
JavaScript框架是什么?怎样才能叫做框架?
Jul 01 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
Jan 17 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
QT与javascript交互数据的实现
May 26 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
python实现图片筛选程序
2018/10/24 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
乌鸦喝水教学反思
2014/02/07 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
毕业生见习报告总结
2014/11/08 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电