原生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 相关文章推荐
javascript学习笔记(四) Number 数字类型
Jun 19 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
JS公共小方法之判断对象是否为domElement的实例
Nov 25 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
vue组件中使用props传递数据的实例详解
Apr 08 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
微信小程序登录session的使用
Mar 17 Javascript
Vue项目路由刷新的实现代码
Apr 17 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
Jul 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP 中的批处理的实现
2007/06/14 PHP
表单复选框向PHP传输数据的代码
2007/11/13 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python 发送邮件方法总结
2020/08/10 Python
python模块内置属性概念及实例
2021/02/18 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
小学教师节活动方案
2014/01/31 职场文书
语文教学感言
2014/02/06 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
亲子活动总结
2014/04/26 职场文书
学习心理学的体会
2014/11/07 职场文书
实习单位指导教师评语
2014/12/30 职场文书
技术员个人工作总结
2015/03/03 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android