이것은 실제로 JS 난수를 연습하는 방법입니다. 먼저 모든 사람의 이름을 배열에 미리 작성한 다음 배열의 값이 해당 영역에 빠르게 표시되도록 합니다. 스크롤하면 무작위 효과가 더 이상 발생하지 않습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JS写的随机点名 - 琼台博客</title> <script type="text/javascript"> var isRun=true; var a = ["张三","李四","王五","赵六"]; var a2 = new Array(); function action(str){ var s = document.getElementById("bt").value; if(s=="开始"){ isRun=true; run(); document.getElementById("bt").value="结束"; }else{ isRun=false; document.getElementById("bt").value="开始"; } } function run(){ var i = Math.floor(Math.random() * a.length+ 1)-1; document.getElementById("show").innerHTML=a[i]; if(isRun==false){ var b =true; for(var j in a2){ if(a2[j]==i){ b=false; } } if(b){ a2[a2.length]=i; return; } } setTimeout("run()",10); } </script> </head> <body> <div style="text-align:center; margin-top:100px;width:100%;"> <div id="show" style="margin:auto;font-size:50px;width:100px;height:50px; background:#FFEEFF"></div> <div style="margin-top:20px;"> <input id="bt" type="button" onclick="action()" value="开始"/> </div> </div> </body> </html>