Hot For Coding
JavaScript写的一个随机点名程序

这个其实是对JavaScript的Math.random函数一个练习方式,先把所有人得名字预先写好在一个数组里,然后让数组里的值快速的显示在区域内,当你按停的时候滚动就会停止达到随机效果。

DEMO

思路

  • 定义一个名字数组,作为资源池
  • 有一个每隔20毫秒就随机从资源池里随机获取一个显示在页面上
  • 手动停止后,最后显示在页面上的名字就是随机出来的名字

Code

// Nicholas Lee www.qttc.net

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()", 20);
}

注意

由于涉及浏览器刷新性能问题,setTimeout的值不能过小,否则会掉帧,太大会显得慢,这个值大家慢慢调,体会体会。

TITLE: JavaScript写的一个随机点名程序

LINK: https://www.qttc.net/4_random_one_from_a_list.html

NOTE: 转载内容请注明出处