使用 HTML 和 JavaScript 实现随机点名器

引言

随机点名器是一个简单有趣的应用程序,常用于课堂或者会议中随机挑选发言者。本文将详细介绍如何使用 HTML 和 JavaScript 来创建这样一个点名器。

效果图
1. HTML 结构

首先,我们需要创建一个网页结构,包括一个用于显示名字的盒子和一个按钮来控制点名的开始和停止。

HTML 代码:

html 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>随机点名器</title>
<style type="text/css">
    /* CSS 样式 */
    *{margin:0;padding:0;list-style-type:none;}
    a,img{border:0;}
    body{font:12px/180% "Microsoft YaHei","微软雅黑", "宋体";}
    #bodybj{background:url(images.jpg) no-repeat center top;}
    #box{margin:auto;width:660px;font-size:66px;height:94px;line-height:94px;overflow:hidden;color:#138eee;text-align:center;padding:0 30px;margin-top:200px;}
    #bt{margin:auto;width:200px;text-align:center;margin-top:75px;color:#fff;font-size:25px;line-height:28px;cursor:pointer;}
</style>
<script type="text/javascript">
    // JavaScript 代码
    var namelist = [
        "朱春涛","赵文静","柴启泰","孙鸿苗","赵凯","杜青雨"
    ];
    var mytime = null;

    function doit() {
        var bt = document.getElementById("bt");
        if (mytime === null) {
            bt.innerHTML = "停止点名";
            show();
        } else {
            bt.innerHTML = "开始点名";
            clearTimeout(mytime);
            mytime = null;
        }
    }

    function show() {
        var box = document.getElementById("box");
        var num = Math.floor(Math.random() * 100000) % namelist.length;
        box.innerHTML = namelist[num];
        mytime = setTimeout(show, 99);
    }
</script>
</head>
<body id="bodybj">
<div id="box">同学们!准备好点名了吗?</div>
<div id="bt" onClick="doit()">开始点名</div>
</body>
</html>
2. CSS 样式

为了让网页看起来更加美观,我们为网页添加了一些基本的 CSS 样式。

CSS 代码:

css 复制代码
/* CSS 样式 */
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
body{font:12px/180% "Microsoft YaHei","微软雅黑", "宋体";}
#bodybj{background:url(images.jpg) no-repeat center top;}
#box{margin:auto;width:660px;font-size:66px;height:94px;line-height:94px;overflow:hidden;color:#138eee;text-align:center;padding:0 30px;margin-top:200px;}
#bt{margin:auto;width:200px;text-align:center;margin-top:75px;color:#fff;font-size:25px;line-height:28px;cursor:pointer;}
3. JavaScript 功能实现

接下来,我们来看一下 JavaScript 的部分,这部分代码负责实现点名器的核心功能。

3.1 变量定义

我们首先定义了一个数组 namelist 来存储所有的名字,以及一个变量 mytime 用来保存定时器的引用。

javascript 复制代码
var namelist = [
    // 名字列表
];
var mytime = null;
3.2 doit() 函数

这个函数用于切换点名状态,即开始点名或停止点名。

javascript 复制代码
function doit() {
    var bt = document.getElementById("bt");
    if (mytime === null) {
        bt.innerHTML = "停止点名";
        show();
    } else {
        bt.innerHTML = "开始点名";
        clearTimeout(mytime);
        mytime = null;
    }
}
3.3 show() 函数

这个函数用于显示随机的名字,并且递归调用自身来不断更新显示的名字。

javascript 复制代码
function show() {
    var box = document.getElementById("box");
    var num = Math.floor(Math.random() * 100000) % namelist.length;
    box.innerHTML = namelist[num];
    mytime = setTimeout(show, 99); // 每99毫秒更新一次名字
}
4. 测试与运行

当页面加载完成后,点击"开始点名"按钮即可启动随机点名器。点名器将以随机的速度显示名单中的名字,再次点击按钮可以停止点名。

5. 总结

通过本文,我们学习了如何使用 HTML 和 JavaScript 创建一个简单的随机点名器。从 HTML 结构的设计到 CSS 样式的美化,再到 JavaScript 功能的实现,每一个步骤都至关重要。希望这篇教程能帮助你理解如何利用前端技术创建实用的小工具。

扩展阅读


相关推荐
Dxy12393102161 天前
HTML中的Canvas入门:从零开始绘制图形世界
html
滑雪的企鹅.1 天前
HTML头部元信息避坑指南大纲
前端·html
浔川python社1 天前
HTML头部元信息避坑指南技术文章大纲
前端·html
豹哥学前端1 天前
用猜数字游戏,一口气掌握 JavaScript 核心知识点(附完整代码)
前端·javascript
忆往wu前1 天前
从0到1一步步拆解搭建,梳理一个 Vue3 简易图书后台全开发流程
前端·javascript·vue.js
shao9185161 天前
第3章(2)——使用Gradio JavaScript Client
javascript·node.js·cdn·gradio·job·events·playcode
光影少年1 天前
大屏页面,一次多个请求,请求加密导致 点击 全局时间选择器 时出现卡顿咋解决(面板收起会延迟1~2秒)
前端·javascript·vue.js·学习·前端框架·echarts·reactjs
Mr.mjw1 天前
vue中封装一个环形进度条组件,根据外部盒子大小自适应变化
前端·javascript·vue.js
无心使然1 天前
Openlayers调用ArcGis影像服务之一动态地图、地图切片(/exportImage)
前端·javascript·数据可视化
像我这样帅的人丶你还1 天前
前端监控体系与实践(二):全局监控
前端·javascript·vue.js