05.demo 随机点名

需求

分为上下两个部分,上方为显示区域,下方为控制区域。显示区域显示基地所有成员的工号和姓名,控制区域由开始和结束两个按钮组成。点击开始按钮,显示区域里的内容开始滚动,点击结束按钮,内容滚动停止,随机显示一位成员的工号和姓名

演示图

思路

  1. HTML结构:

    • 包含一个用于显示的区域 displayArea 和一个控制区域 controlArea,控制区域包括开始和结束两个按钮。
  2. CSS样式:

    • 设置基本样式,包括字体、文本大小、边距等。
    • displayArea 使用 overflow: hidden 隐藏溢出的内容。
  3. JavaScript脚本:

    • 创建一个包含基地成员工号和姓名的数组 members
    • 获取显示区域的元素。
    • 实现 startScroll 函数,用于开始滚动。
    • 实现 stopScroll 函数,用于停止滚动。
    • 实现 generateDisplayText 函数,用于生成显示区域的内容。
    • 在点击开始按钮时,启动定时器,每100毫秒更新一次显示区域的内容,实现滚动效果。
    • 在点击结束按钮时,清除定时器,停止滚动。
  4. 按钮事件:

    • 通过按钮的 onclick 属性,将相应的函数绑定到按钮上,实现开始和结束的控制。

代码部分

xml 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>成员工号和姓名滚动</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin: 50px;
        }

        #displayArea {
            font-size: 24px;
            font-weight: bold;
            height: 50px;
            overflow: hidden;
            border: 1px solid #ccc;
            margin-bottom: 20px;
        }

        #controlArea {
            margin-top: 20px;
        }

        button {
            font-size: 18px;
            padding: 10px 20px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <!-- 显示区域 -->
    <div id="displayArea"></div>

    <!-- 控制区域 -->
    <div id="controlArea">
        <button onclick="startScroll()">开始</button>
        <button onclick="stopScroll()">结束</button>
    </div>

    <script>
        // 假设基地成员的工号和姓名存储在一个数组中
        var members = [
            { id: '001', name: '谭' },
            { id: '002', name: '李' },
            { id: '003', name: '吴' },
            { id: '004', name: '谭1' },
            { id: '005', name: '李2' },
            { id: '006', name: '吴3' },
            { id: '007', name: '谭4' },
            { id: '008', name: '李5' },
            { id: '009', name: '吴6' },
            // 添加更多成员...
        ];

        // 获取显示区域的元素
        var displayArea = document.getElementById('displayArea');
        // 设置显示区域的初始内容
        displayArea.textContent = generateDisplayText();

        // 变量声明,用于存储定时器和滚动状态
        var scrollInterval;
        var isScrolling = false;

        // 开始滚动函数
        function startScroll() {
            // 防止重复启动滚动
            if (!isScrolling) {
                // 设置滚动状态为 true
                isScrolling = true;
                // 启动定时器,每100毫秒更新一次显示区域的内容
                scrollInterval = setInterval(function() {
                    displayArea.textContent = generateDisplayText();
                }, 100);
            }
        }

        // 停止滚动函数
        function stopScroll() {
            // 清除定时器
            clearInterval(scrollInterval);
            // 设置滚动状态为 false
            isScrolling = false;
        }

        // 生成显示区域的内容函数
        function generateDisplayText() {
            // 从成员数组中随机选择一位成员
            var randomMember = members[Math.floor(Math.random() * members.length)];
            // 返回工号和姓名的字符串
            return `工号:${randomMember.id},姓名:${randomMember.name}`;
        }
    </script>
</body>
</html>
相关推荐
shangxianjiao5 分钟前
vue前端项目介绍项目结构
前端·javascript·vue.js
asdfg125896336 分钟前
数组去重(JS)
java·前端·javascript
鹏多多37 分钟前
前端大数字精度解决:big.js的教程和原理解析
前端·javascript·vue.js
少年姜太公7 小时前
什么?还不知道git cherry pick?
前端·javascript·git
Liu.7749 小时前
vue3使用vue3-print-nb打印
前端·javascript·vue.js
dly_blog10 小时前
Vue 逻辑复用的多种方案对比!
前端·javascript·vue.js
wyzqhhhh11 小时前
京东啊啊啊啊啊
开发语言·前端·javascript
想学后端的前端工程师11 小时前
【Java集合框架深度解析:从入门到精通-后端技术栈】
前端·javascript·vue.js
GISer_Jing12 小时前
Nano Banana:AI图像生成与编辑新标杆
前端·javascript·人工智能
csdn_aspnet12 小时前
用100行實現HTML5可存檔塗鴉版
javascript