简易html随机选人

style部分

    <style>
      .disbtn {
        opacity: 0.6;
        pointer-events: none;
      }
      .box{
        height: 20px;
        margin: 10px 0;
      }
    </style>

body部分、

    <!-- 选人 -->
    <div class="box">
      <span class="person"></span>
      <span class="person"></span>
      <span class="person"></span>
    </div>
    <div>
      <button onclick="randomperson()" id="btn">随机选人</button>
    </div>

js部分

//   随机选人
      let persons = document.querySelectorAll(".person");
      let btn = document.getElementById("btn");
      function randomperson() {
        console.log(btn);
        btn.className = "disbtn";
        var personArr = [
          "刘",
          "张",
          "王",
          "宋",
          "李",
          "向",
          "曹",
          "吴",
          "郭",
          "唐",
          "田",
          "陈",
        ];
        var seped = 1;
        var poersonNum = 0;
        var randomNo;
        var newpersonArr = personArr;
        for (let index = 0; index < persons.length; index++) {
          persons[index].innerHTML = "";
         let timer = setInterval(() => {
            seped++;
            randomNo = Math.round(Math.random() * (newpersonArr.length - 1)); //选择随机人员
            if ( poersonNum < persons.length && poersonNum == index) { //从第一个随机滚动开始
                persons[index].innerHTML = newpersonArr[randomNo];
            }
            if (seped == 200 * (poersonNum + 1) && poersonNum < persons.length) { //依次添加人员
              persons[poersonNum].innerHTML = newpersonArr[randomNo];
              let local = newpersonArr.indexOf(newpersonArr[randomNo]); // 删除已选中得人员
              newpersonArr.splice(local, 1);
              poersonNum++;
            }
            if (poersonNum >= persons.length) {
              clearInterval(timer);
              poersonNum++;
              btn.className = "";
            }
          }, 50);
        }
      }

简易html+css+js随机选人小案例参考,欢迎各位大佬给出代码优化建议

代码效果

1703482239719

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值