<html> <head> <meta charset="utf-8"> <title>抽獎web</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> </head> <body background="https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1588772845&di=207b5ab133cb84f363ba5e96e38e9e89&src=http://pic.90sjimg.com/back_pic/qk/back_origin_pic/00/02/19/1f671b65310564cdc8f42b67f9c8b0b9.jpg"> <center><h1>抽獎程序</h1></center><br> <div class="container-fluid"> <div class="row"> <div class="col-sm-8"> <div> <div class="form-group"> <label for="comment">參與抽獎人員【例如張三18888888888-李四18888888888-……】</label> <textarea class="form-control" rows="5" id="User"></textarea> </div> <div> 抽出幾個:<input type="number" name="successUserNumber" id="randomNumber"> <button id="start" onclick="startRun()">開始抽獎</button> <button onclick="stop()">停止</button> <button onclick="location.reload()">重新抽獎</button> </div> </div> <center> <h1 id="randomUser"></h1> <h1 id="successUser"></h1> </center> </div> <div class="col-sm-4"> <div class="parent"> <div class="child"> <table class="table"> <thead> <tr> <th>參與抽獎人員</th> </tr> </thead> <tbody id="tableuser"> </tbody> </table> </div> </div> </div> </div> </div> </body> </html>
js和css
<style type="text/css"> .parent{ position:relative; height:150%;//高度根據需求自行設定 } .child{ position:absolute; left:0; top:0; right:0; bottom:0; //left,top,right,bottom都為0,充滿真個頁面 overflow-y:auto; overflow-x:hidden; //設置Y軸出現滾動條,X軸隱藏 } </style> <script type="text/javascript"> var userArray=new Array();//定義用戶數組 var timer; var outUser; var randomNumber; var user; function startRun() { $('#successUser').html(''); var inUser=document.getElementById('User').value.split('-') randomNumber=document.getElementById('randomNumber').value $('#start').attr({"disabled":"disabled"});//保證一次點擊一次抽獎防止死循環 for (i=0;i<inUser.length;i++) { userArray[i]=inUser[i] user+='<tr><td>'+inUser[i]+'</td></tr>' } $('#tableuser').html(user); outUser=shuffle(userArray); timer=setInterval("randomShow()",10); } function shuffle(arr) { //著名的洗牌算法,原理就是遍歷數組元素,將當前元素與隨機抽取的一個剩余元素進行交換。 for (let i=arr.length-1; i>=0; i--) { let rIndex = Math.floor(Math.random()*(i+1)); // 打印交換值 // console.log(i, rIndex); let temp = arr[rIndex]; arr[rIndex] = arr[i]; arr[i] = temp; } return arr; } function randomShow(){ pcount = userArray.length - 1; num = Math.floor(Math.random() * pcount); html=userArray[num] $('#randomUser').html(html) } function stop(){ let html='' clearInterval(timer); //$('#start').removeAttr('disabled'); $('#randomUser').html(''); for(i=0;i<randomNumber;i++){ var number=i+1 html+='<br><span class="badge badge-success">第'+number+'名-----'+outUser[i]+'</span><br>' } $('#successUser').html(html); } </script>