原生JS实现随机点名项目

it2022-05-05  74

核心思想

随机产生规定范围内的整数,然后再产生相同范围内的整数,两者相同时,则暂停。

所用知识

Math.random() * num: 产生从0到num的随机数Math.floor(): 向下取整简单的DOM操作等

技术扩展

扩展人数添加停止键等

效果

代码如下

html: 1 <div class="container"> 2 <section class="demo"> 3 <ul> 4 <li></li> 5 <li></li> 6 <li></li> 7 </ul> 8 </section> 9 <section class="students"><ul></ul></section> 10 <section class="buttonList"> 11 <ul> 12 <li><button type="button">随机选一个</button></li> 13 <li><button type="button">随机选两个</button></li> 14 <li><button type="button">随机选三个</button></li> 15 </ul> 16 </section> 17 </div> 1 <style type="text/css"> 2 * { 3 margin: 0; 4 padding: 0; 5 } 6 ul { 7 list-style: none; 8 } 9 body { 10 width: 100%; 11 height: 100%; 12 background: url("images/bg.jpg") no-repeat; 13 background-size: cover; 14 } 15 button { 16 border: none; 17 background-color: transparent; 18 color: #fff; 19 font-size: 20px; 20 } 21 .container { 22 width: 1200px; 23 height: 700px; 24 margin: 10px auto; 25 } 26 .container .demo, .container .buttonList { 27 width: inherit; 28 height: 25%; 29 } 30 .container .students { 31 width: inherit; 32 height: 50%; 33 } 34 .container .students li { 35 margin-right: 50px; 36 margin-bottom: 30px; 37 text-align: center; 38 border-radius: 10px; 39 font-size: 20px; 40 font-weight: bold; 41 } 42 .container .students li:nth-child(5n) { 43 margin-right: 0; 44 } 45 .container .buttonList li button { 46 float: left; 47 width: 200px; 48 height: 60px; 49 background-color: #4caf5085; 50 margin-right: 150px; 51 text-align: center; 52 line-height: 60px; 53 border-radius: 10px; 54 margin-top: 50px; 55 font-weight: bold; 56 } 57 .container .buttonList li button:hover { 58 background-color: #4caf50; 59 } 60 .container .buttonList li:nth-child(1) { 61 margin-left: 150px; 62 } 63 .container .demo li { 64 width: 200px; 65 height: 150px; 66 background-color: #4caf5085; 67 float: left; 68 margin-right: 150px; 69 border-radius: 50%; 70 margin-top: 10px; 71 line-height: 150px; 72 font-weight: bold; 73 color: #fff; 74 font-size: 60px; 75 text-align: center; 76 } 77 .container .demo li:first-child { 78 margin-left: 150px; 79 } 80 </style> <script type="text/javascript"> var stuArray = ["小方", "小田", "小明", "小红", "小吕", "小于", "小美", "小绿", "李华", "小李", "小胡", "小夏", "小徐", "小小", "小吴", "小陈", "小狗", "小许", "小熊", "小新"]; var stuList = document.querySelector(".students").querySelector("ul"); var buttonList = document.querySelectorAll("button"); var demoList = document.querySelector(".demo").querySelectorAll("li"); for (var i = 0; i < stuArray.length; i++) { var li = document.createElement("li"); stuList.appendChild(li); li.innerHTML = stuArray[i]; li.style.cssFloat = "left"; li.style.width = 200 + "px"; li.style.height = 60 + "px"; li.style.backgroundColor = "#4caf5085"; li.style.color = "#fff"; li.style.lineHeight = 60 + "px"; } var stuArrayList = stuList.querySelectorAll("li"); function chooseOne () { for (var i = 0; i < stuArrayList.length; i++) { stuArrayList[i].style.background = "#4caf5085"; } for (var i = 0; i < demoList.length; i++) { demoList[i].innerHTML = ""; } var interId = setInterval(function () { var x = Math.floor(Math.random() * stuArray.length); stuArrayList[x].style.backgroundColor = "green"; demoList[1].innerHTML = stuArrayList[x].innerHTML; var timeId = setTimeout(function () { stuArrayList[x].style.backgroundColor = "#4caf5085"; }, 100); var y = Math.floor(Math.random() * stuArray.length); if (y == x) { clearTimeout(timeId); clearInterval(interId); stuArrayList[y].style.backgroundColor = "green"; } }, 100); } function chooseTwo () { for (var i = 0; i < stuArrayList.length; i++) { stuArrayList[i].style.background = "#4caf5085"; } for (var i = 0; i < demoList.length; i++) { demoList[i].innerHTML = ""; } var interId = setInterval(function () { do { var x1 = Math.floor(Math.random() * stuArray.length); var x2 = Math.floor(Math.random() * stuArray.length); } while (x1 == x2); stuArrayList[x1].style.backgroundColor = "green"; stuArrayList[x2].style.backgroundColor = "green"; demoList[0].innerHTML = stuArrayList[x1].innerHTML; demoList[2].innerHTML = stuArrayList[x2].innerHTML; var timeId = setTimeout(function () { stuArrayList[x1].style.backgroundColor = "#4caf5085"; stuArrayList[x2].style.backgroundColor = "#4caf5085"; }, 100); var y1 = Math.floor(Math.random() * stuArray.length); var y2 = Math.floor(Math.random() * stuArray.length); if ((y1 == x1 && y2 == x2) || (y1 == x2 && y2 == x1)) { clearTimeout(timeId); clearInterval(interId); stuArrayList[x1].style.backgroundColor = "green"; stuArrayList[x2].style.backgroundColor = "green"; } }, 100); } function chooseThree () { for (var i = 0; i < stuArrayList.length; i++) { stuArrayList[i].style.background = "#4caf5085"; } for (var i = 0; i < demoList.length; i++) { demoList[i].innerHTML = ""; } var interId = setInterval(function () { do { var x1 = Math.floor(Math.random() * stuArray.length); var x2 = Math.floor(Math.random() * stuArray.length); var x3 = Math.floor(Math.random() * stuArray.length); } while (x1 == x2 || x2 == x3 || x1 == x3); stuArrayList[x1].style.backgroundColor = "green"; stuArrayList[x2].style.backgroundColor = "green"; stuArrayList[x3].style.backgroundColor = "green"; demoList[0].innerHTML = stuArrayList[x1].innerHTML; demoList[1].innerHTML = stuArrayList[x2].innerHTML; demoList[2].innerHTML = stuArrayList[x3].innerHTML; var timeId = setTimeout(function () { stuArrayList[x1].style.backgroundColor = "#4caf5085"; stuArrayList[x2].style.backgroundColor = "#4caf5085"; stuArrayList[x3].style.backgroundColor = "#4caf5085"; }, 100); var y1 = Math.floor(Math.random() * stuArray.length); var y2 = Math.floor(Math.random() * stuArray.length); var y3 = Math.floor(Math.random() * stuArray.length); if ((x1 == y1 && x2 == y2) || (x1 == y2 && x2 == y1)) { clearTimeout(timeId); clearInterval(interId); stuArrayList[x1].style.backgroundColor = "green"; stuArrayList[x2].style.backgroundColor = "green"; stuArrayList[x3].style.backgroundColor = "green"; } }, 100); } buttonList[0].addEventListener("click", function () {chooseOne()}, false); buttonList[1].addEventListener("click", function () {chooseTwo()}, false); buttonList[2].addEventListener("click", function () {chooseThree()}, false);

 

转载于:https://www.cnblogs.com/yuer20180726/p/11151561.html

相关资源:java随机点名器项目

最新回复(0)