首页 > 其他分享 >JS:随机点名综合案例

JS:随机点名综合案例

时间:2024-03-14 20:03:51浏览次数:14  
标签:qs 点名 nameArr random JS start 随机 按钮 const

需求:

1、随机点名

2、不能重复出现已经被抽取的名字

3、当剩下最后一个人的名字时不再抽取

部分html代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    h2 {
      text-align: center;
    }

    .box {
      width: 600px;
      margin: 50px auto;
      display: flex;
      font-size: 25px;
      line-height: 40px;
    }

    .qs {

      width: 450px;
      height: 40px;
      color: red;

    }

    .btns {
      text-align: center;
    }

    .btns button {
      width: 120px;
      height: 35px;
      margin: 0 50px;
    }
  </style>
</head>

<body>

  <h2>随机点名</h2>
  <div class="box">
    <span>名字是:</span>
    <div class="qs">这里显示姓名</div>
  </div>
  <div class="btns">
    <button class="start">开始</button>
    <button class="end">结束</button>
  </div>

 
</body>

</html>

JavaScript部分代码:

 <script>
    // 点击开始按钮随机抽取数组的一个数据,放到页面中
    // 点击结束按钮删除数组当前抽取的一个数据
    // 当抽取到最后一个数据的时候,两个按钮同时禁用,(写点开始里面,只剩最后一个数据不用抽了)
    // 核心:利用定时器快速展示,停止定时器结束展示

    const nameArr = ['zhang', 'liu', 'li', 'zhao']
    // 业务1开始按钮模块
    const qs = document.querySelector('.qs')
    const start = document.querySelector('.start')
    let n = 0
    let random = 0
    // 添加点击事件
    start.addEventListener('click', function () {
      // 随机数

      n = setInterval(function () {
        random = parseInt(Math.random() * nameArr.length)
        qs.innerHTML = nameArr[random]
      }, 50)

      // 如果数组里面只剩一个元素就不用再开始了
      if (nameArr.length === 1) {
        start.disabled = true
        end.disabled = true

      }

    })
    //获取结束按钮
    const end = document.querySelector('.end')


    end.addEventListener('click', function () {
      clearInterval(n)//删除定时器
      nameArr.splice(random, 1)//已经被抽到的名字删掉
    })

  </script>

标签:qs,点名,nameArr,random,JS,start,随机,按钮,const
From: https://blog.csdn.net/Saala/article/details/136720341

相关文章

  • Node.js毕业设计报名系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,人们对于各种线上服务的需求日益增长。报名系统作为一项基础的在线服务,广泛应用于教育、培训、活动组织等多个领域。传统的报名方......
  • Node.js毕业设计报考意向分析系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当前信息化社会,教育领域也紧跟时代步伐,逐渐向数字化、智能化方向发展。其中,报考意向分析系统作为一种教育辅助工具,对于学生、家长以及教育机构来说具有重......
  • json总结 fastjson和jackson 以及typereference(未写完)
    fastjson跟JackJson有很大区别,为了防止搞混,这里进行总结因为会涉及到流水线的门禁,所以这里给出比较优质的解决方案 两个测试类代码如下:@DatapublicclassStudent{privateStringname;privateIntegerage;privateTeacherteacher;}@Datapubl......
  • Chart.js绘制动态折线图
    案例1<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>动态折线图</ti......
  • vis.js使用
    案例1<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>vis.js折线图&l......
  • js怎么将服务器GMT时间转为中国标准时间
    最近遇到一个需求:antd的时间组件有个默认的时间,我们是前端自己根据电脑的系统时间newDate()来定的,newDate()的时间就是系统的时间。但是当测试人员搞事情,把系统时间改了时区,电脑日期改变,那antd组件的默认时间也会跟着变,所以这个时候就不对了,测试说应该都根据中国标准时......
  • html5&css&js代码 018颜色表
    html5&css&js代码018颜色表一、代码二、效果三、解释这段代码展示了一个基本的颜色表,方便参考使用,同时也应用了各种样式应用方式。一、代码<!DOCTYPEhtml><htmllang="zh-cn"><head><title>编程笔记html5&css&js颜色表</title><metacharset="utf......
  • java毕设jsp酒店预约管理系统毕业设计
    简介基于JavaJSP的酒店预约管理系统是一个利用Java技术和JSP页面实现的酒店在线预约平台。该系统通过简洁明了的界面,为用户提供酒店信息查询、房间预约及管理等功能,同时支持管理员对酒店及预约信息进行高效管理。采用JSP技术,使得系统具备良好的扩展性和可维护性,为用户提......
  • JS 队列(数据结构)- 笔记
    【队列】代码:/***链表队列*/classLinkedListQueue{/**@type{ListNode}*/#head;/**@type{ListNode}*/#tail;/**@type{number}*/#size;constructor(){this.#head=null;this.#tail=null;this......
  • Rust解析JSON,结构体序列化和反序列化
    Rust参考教程:HereJSON一种常用的由键值对组成的数据对象;本文将通过多个例子讲解在Rust中如何解析JSON内容,以及如何将结构体转换成JSON字符串。在Rust中解析JSON文本通常需要使用一个JSON库。Rust标准库中有一个名为serde的库,它提供了序列化和反序列化结构体和其他数据类型的......