HTML+CSS+JavaScript:随机点名案例

news2024/11/20 15:32:10

 一、需求

1、点击开始按钮,姓名随机切换

2、点击结束按钮,姓名停止切换,此时显示的姓名即为被抽中者

3、同一个人不能被重复抽中

 

二、代码素材

以下是缺失JS部分的代码,感兴趣的小伙伴可以先自己试着写一写

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

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

        .box {
            position: relative;
            box-sizing: border-box;
            margin: 50px auto;
            border: 2px solid #ccc;
            padding: 20px;
            width: 500px;
            height: 200px;
            text-align: center;
        }

        .box h3 {
            line-height: 75px;
        }

        .box button {
            position: absolute;
            bottom: 30px;
            width: 60px;
            height: 30px;
        }

        .box .start {
            left: 130px;
        }

        .box .over {
            right: 130px;
        }
    </style>
</head>

<body>
    <div class="box">
        <h2>随机点名</h2>
        <h3>姓名:马嘉祺</h3>
        <button class="start">开始</button>
        <button class="over">结束</button>
    </div>
    <script>
        const arr = ['马嘉祺', '丁程鑫', '宋亚轩', '严浩翔', '刘耀文', '贺峻霖', '张真源']

    </script>
</body>

</html>

三、算法思路

算法思路非常简单,就是分别为开始按钮和结束按钮绑定点击事件,然后触发开始按钮就开启定时器,触发结束按钮就终止定时器,就这么简单……

四、完整代码

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

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

        .box {
            position: relative;
            box-sizing: border-box;
            margin: 50px auto;
            border: 2px solid #ccc;
            padding: 20px;
            width: 500px;
            height: 200px;
            text-align: center;
        }

        .box h3 {
            line-height: 75px;
        }

        .box button {
            position: absolute;
            bottom: 30px;
            width: 60px;
            height: 30px;
        }

        .box .start {
            left: 130px;
        }

        .box .over {
            right: 130px;
        }
    </style>
</head>

<body>
    <div class="box">
        <h2>随机点名</h2>
        <h3>姓名:马嘉祺</h3>
        <button class="start">开始</button>
        <button class="over">结束</button>
    </div>
    <script>
        const arr = ['马嘉祺', '丁程鑫', '宋亚轩', '严浩翔', '刘耀文', '贺峻霖', '张真源']

        const h3 = document.querySelector('.box h3')
        const start = document.querySelector('.start')
        const over = document.querySelector('.over')

        let timer

        let rand

        start.addEventListener('click', () => {
            start.disabled = 1
            over.disabled = 0
            timer = setInterval(() => {
                rand = Math.floor(Math.random() * arr.length)
                h3.innerHTML = `姓名:${arr[rand]}`
            }, 100);
        })

        over.addEventListener('click', () => {
            start.disabled = 0
            over.disabled = 1
            clearInterval(timer)
            //数组长度为 1 时,禁用按钮
            if (arr.length === 1)
                start.disabled = over.disabled = 1
            else
                arr.splice(rand, 1)
        })

    </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/830349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scrum.org-ScrumMaster认证课-PSM培训

在敏捷学习的道路上继续前行&#xff0c;Leangoo领歌的PSM课程已经开启&#xff0c;认证全球认可&#xff0c;还不用续证&#xff0c;可以了解一下。 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架&#xff0c;旨在最短时间内交…

Elasticsearch 商业启示

上月的“红帽事件”&#xff0c;说明开源软件的“客服模式”行不通&#xff0c;那么&#xff0c;开源软件如何赚钱呢&#xff1f;既不能卖软件&#xff0c;又不能卖支持服务&#xff0c;该怎么办呢&#xff1f;我现在的看法是&#xff0c;只剩下一种模式是可行的&#xff0c;开…

Windows用户如何安装新版本cpolar内网穿透超详细教程

Windows用户如何安装新版本cpolar内网穿透 文章目录 Windows用户如何安装新版本cpolar内网穿透 在科学技术高度发达的今天&#xff0c;我们身边充斥着各种电子产品&#xff0c;这些电子产品不仅为我们的工作带来极大的便利&#xff0c;也让生活变得丰富多彩。我们可以使用便携的…

方法论揭秘|研发数字化转型,这家保险企业做对了什么?

7月27日&#xff0c;FCS 2023 第 7 届中国金融 CIO 峰会&#xff08;深圳站&#xff09;如期举行。大会以「洞见智慧金融」为主题&#xff0c;深度解读中国金融行业数字化转型现状&#xff0c;探讨金融行业信息化趋势、数字供应链金融服务、金融科技创新等问题&#xff0c;期望…

js:使用LetterAvatar通过canvas实现浏览器中生成字母头像

实现效果 LetterAvatar的原理就是利用了浏览器对象canvas 在线体验&#xff1a;https://mouday.github.io/tools/pages/letter-avatar/index.html LetterAvatar.js 完整代码 /** LetterAvatar* * Artur Heinze* Create Letter avatar based on Initials* based on https:/…

环形链表的进一步探究

茕茕白兔&#xff0c;东走西顾&#xff0c;衣不如新&#xff0c;人不如故 往期回顾&#xff1a; 数据结构——双向链表 数据结构——单链表 数据结构——顺序表 文章目录 如何判断一个链表是否为环形链表 环形链表的判断的深入探究 例1&#xff1a;沸羊羊追美羊羊 例…

多线程案例(3)

文章目录 多线程案例三三、 定时器 大家好&#xff0c;我是晓星航。今天为大家带来的是 多线程案例三 相关的讲解&#xff01;&#x1f600; 多线程案例三 三、 定时器 定时器是什么 定时器也是软件开发中的一个重要组件. 类似于一个 “闹钟”. 达到一个设定的时间之后, 就…

AgileBoot - 全栈项目启动

AgileBoot-Back-End: 基于Ruoyi做了大量重构优化的基础快速开发框架。采用Springboot Vue 3 Mybatis Plus 更面向对象的业务建模 面向生产的项目。&#xff08;非玩具项目&#xff09; 首先克隆代码&#xff0c;同是克隆前端和后端的代码。 前端代码启动&#xff1a; np…

机器学习---概述(二)

文章目录 1.模型评估1.1 分类模型评估1.2 回归模型评估 2. 拟合2.1 欠拟合2.2 过拟合2.3 适当拟合总结&#xff1a; 3.深度学习3.1层次&#xff08;Layers&#xff09;&#xff1a;3.2 神经元&#xff08;Neurons&#xff09;&#xff1a;3.3 总结 1.模型评估 模型评估是机器学…

【2种方法,jmeter用一个正则提取器提取多个值!】

jmeter中&#xff0c;用json提取器&#xff0c;一次提取多个值&#xff0c;这个很多人都会。但是&#xff0c;用正则提取器一次提取多个&#xff0c;是否可以呢&#xff1f; 肯定&#xff0c;很多人都自信满满的说&#xff0c;可以&#xff01;形如&#xff1a;token":&q…

MC0111配速MC0112白日梦Ⅰ

MC0111配速 难度&#xff1a; 白银 时间限制&#xff1a;1秒 占用内存&#xff1a;128M 小码哥参加了学校的定向越野比赛&#xff0c;赛完后&#xff0c;他踌躇满志地拿着自己的成绩单&#xff0c;看着一段段的数据&#xff0c;想算一下自己整场比赛的平均配速是多少。…

无涯教程-Lua - 嵌套if语句函数

在Lua编程中&#xff0c;您可以在另一个if or else if语句中使用一个if or else if语句。 nested if statements - 语法 嵌套if 语句的语法如下- if( boolean_expression 1) then--[ Executes when the boolean expression 1 is true --]if(boolean_expression 2)then--[ Ex…

【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio 通过Java实现和公众号的快速对接

目录 一、Cloud Studio是什么 1.1 Cloud Studio介绍 1.2 Cloud Studio功能特点 1.3 Cloud Studio的好处 二、实战案例 2.1 创建开发环境 2.2选择开发模板 2.3 代码编写 2.3.1 引入依赖包 2.3.2 创建Models配置类 2.3.3 创建测试类demo.java 三、使用总结 今天通过J…

数论—换元法

0x00 前言 换元法指将一个式子看做一个整体&#xff0c;进行整体运算&#xff0c;从而达到简化的目的。 0x01 例题&#xff1a; 1.求所有整数n&#xff0c;使得n1|n25 2.求所有整数n&#xff0c;使得n-2|n5n 同样使用n-2去换元即可。 3.求所有的整数n&#xff0c;使用n-1|…

c语言基础知识帮助理解(函数递归详解)

"从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚和一个小和尚。有一天老和尚对小和尚说:“从前有座山.山里有座庙&#xff0c;庙里有个老和尚和一个小和尚&#xff0c;有一天老和尚对小和尚说&#xff1a;“从前有座山.山里有座庙&#xff0c;庙里有个老和尚…

uniapp返回

// 监听返回事件onNavigationBarButtonTap() {uni.showModal({title: 提示,content: 确定要返回吗&#xff1f;,success: (res) > {if (res.confirm) {uni.navigateBack({delta: 2})}}})},

Palo Alto Networks® PA-220R 下一代防火墙 确保恶劣工况下的网络安全

一、主要安全功能 1、每时每刻在各端口对全部应用进行分类 • 将 App-ID 用于工业协议和应用&#xff0c;例如 Modbus、 DNP3、IEC 60870-5-104、Siemens S7、OSIsoft PI 等。 • 不论采用何种端口、SSL/SSH 加密或者其他规避技术&#xff0c;都会识别应用。 • 使用…

opencv-34 图像平滑处理-2D 卷积 cv2.filter2D()

2D卷积是一种图像处理和计算机视觉中常用的操作&#xff0c;用于在图像上应用滤波器或卷积核&#xff0c;从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中&#xff0c;图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动&#xff0c;对每个局部区…

智慧消防解决方案

智慧消防解决方案引入了物联网云平台、云计算中心等创新技术&#xff0c;实现对消防物联网数据的实时采集、传输和分析处理。通过智能感知设备与云平台的紧密结合&#xff0c;该解决方案利用先进的物联网技术、移动互联网和云计算等先进技术手段&#xff0c;实现火灾报警信号的…

健身用什么耳机好、健身大神都戴的运动耳机推荐

随着健身逐渐成为一种普遍的生活状态&#xff0c;越来越多的运动者选择将音乐作为他们锻炼时的精神伴侣。一款好的运动耳机&#xff0c;佩戴的舒适性再到音质、续航、防水。大家肯定问到哪有什么运动耳机好用的呢&#xff1f;今天就为大家推荐几款合适的运动耳机 1、NANK南卡R…