JavaScript 实现彩票中随机数组的获取

1.效果图:

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Math.random方法彩票随机数的生成</title>
</head>
<body>
    <!-- 设置样式 -->
    <input type="text" id="text">
    <button id="btnGo">开始</button>
    <button id="btnStop">获取随机数组</button>

    <script type="text/javascript">

       //获取节点
       var btnGo = document.getElementById("btnGo");
       var btnStop = document.getElementById("btnStop");
       var text = document.getElementById("text");
       //定义生成最小到最大值的随机函数
       function rand(min,max){
            return parseInt(Math.random()*( max - min + 1) + min);
       }
       
       function start(min,max,length){
            //定义空数组
          var arr = [];

          while(arr.length<length){
                 //生成一个随机数prem
               var prem=rand(min,max);
               //判断生成的随机数prem是否在数组arr里,果然不在,就将这个随机数插入到数组里,如果在,执行下一次循环
               if(arr.indexOf(prem) == -1){

                    arr.push(prem);
               }
          }
          //返回数组arr
          return arr;
       }

       var timer = 0;
       //单击开始按钮生成随机数组
       btnGo.onclick =function(){
            //清除
            clearInterval(timer);
            timer = setInterval(function() {
             text.value = start(1,33,7);
        },50)
       }
       //单击停止按钮获取一组随机数
       btnStop.onclick =function(){
                clearInterval(timer);
       }
      
    </script>
</body>
</html>

2.复杂版

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Math.random方法彩票随机数的生成-升级版</title>
    <style type="text/css">
      *{
          margin: 0;
          padding: 0;
      }
      .wrap{
          width: 600px;
          height: 300px;
          background-color: #f8e2e2;
          margin: 0 auto;
      }
      .list{
          width: 440px;
          /*border: 1px solid red;*/
          margin: 0px auto;
      }
      .list li{
           list-style: none;
           width: 30px;
           height: 30px;
           display: inline-block;
           border: 1px solid #fff;
           border-radius: 30px;
           line-height: 30px;
           text-align: center;
           margin: 15px auto 15px;
           /*background-color: #f8f8f8;*/
           /*background-color: rgba(255,255,255,1);*/
      }
      .wrap p{
          text-align: center;
      }
      .wrap p button{
          text-align: center;
          width: 100px;
      }
      #setBtn{
          background-color: red;
          color: #fff;
          border: none;
      }
      .active{
          background-color: red;
          color: #fff;
      }
    </style>
</head>
<body>
       <div class="wrap" id="wrap">
              <ul class="list">
                  <li>01</li>
                  <li>02</li>
                  <li>03</li>
                  <li>04</li>
                  <li>05</li>
                  <li>06</li>
                  <li>07</li>
                  <li>08</li>
                  <li>09</li>
                  <li>10</li>
                  <li>11</li>
                  <li>12</li>
                  <li>13</li>
                  <li>14</li>
                  <li>15</li>
                  <li>16</li>
                  <li>17</li>
                  <li>18</li>
                  <li>19</li>
                  <li>20</li>
                  <li>21</li>
                  <li>22</li>
                  <li>23</li>
                  <li>24</li>
                  <li>25</li>
                  <li>26</li>
                  <li>27</li>
                  <li>28</li>
                  <li>29</li>
                  <li>30</li>
                  <li>31</li>
                  <li>32</li>
                  <li>33</li>
              </ul>
              <p>
                  <button id="setBtn">随机红球</button>
               <button id="clearBtn">清空</button>
              </p>
       </div>
       <script type="text/javascript">
             var ballList = document.getElementById("wrap").getElementsByTagName("li");
             var setBtn =document.getElementById("setBtn");
             var clearBtn =document.getElementById("clearBtn");
              //定义随机数组
             function rnd(min, max) {
              return parseInt(Math.random()*(max - min + 1) + min);
          }
          function rndArray(min, max, length) {
        //先定义一个空数组
        var arr = [];
        //生成一个长度为7的数组
        while(arr.length < length) {
            //生成一个随机数
            var rand = rnd(min, max);
            //判断生成的随机数rand是否在数组arr里,果然不在,就将这个随机数插入到数组里,如果在,执行下一次循环
            if(arr.indexOf(rand) == -1) {
                arr.push(rand);
            }
        }
        arr.sort(function(a, b){return a - b;})
        return arr;
    }

    function selectBall() {
        for(var j = 0; j < ballList.length; j++) {
            ballList[j].className = "";    
        }
        var arr = rndArray(1,33,7);
        // console.log(arr);
        for(var i = 0; i < arr.length; i++) {
            ballList[arr[i]-1].className = "active";
        }
    }
    var timer = 0;
    setBtn.onclick = function() {
        clearTimeout(timer);
        timer = setInterval(selectBall,100);
        setTimeout(function() {   
            clearTimeout(timer);
        },3000)
        // clearTimeout(timer);
    }

    clearBtn.onclick = function() {
        clearTimeout(timer);
        for(var j = 0; j < ballList.length; j++) {
            ballList[j].className = "";    
        }
    }
       </script>
</body>
</html>

 

转载于:https://www.cnblogs.com/CaktyRiven/p/5114391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值