web网页写一个动态抽奖程序,可以指定中奖人

时间: 2024-03-05 21:48:07 浏览: 20
好的,以下是一个用 HTML、CSS 和 JavaScript 编写的动态抽奖程序,可以指定中奖人: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>动态抽奖程序</title> <style> body { font-family: Arial, sans-serif; text-align: center; } h1 { margin-top: 50px; } input[type="text"] { margin-top: 20px; padding: 10px; font-size: 16px; } button[type="button"] { margin-top: 20px; padding: 10px 20px; font-size: 16px; background-color: #4CAF50; color: white; border: none; border-radius: 5px; } #winner { margin-top: 50px; font-size: 24px; font-weight: bold; } </style> </head> <body> <h1>动态抽奖程序</h1> <input type="text" id="specified-winner" placeholder="请输入中奖人员名字"> <button type="button" onclick="startDraw()">开始抽奖</button> <div id="winner"></div> <script> // 中奖人员名单 var winners = ["张三", "李四", "王五", "赵六", "钱七"]; // 抽奖状态 var isDrawing = false; // 开始抽奖 function startDraw() { // 如果正在抽奖,则不进行任何操作 if (isDrawing) { return; } // 获取指定中奖人 var specifiedWinner = document.getElementById("specified-winner").value; // 开始抽奖 isDrawing = true; var drawInterval = window.setInterval(function() { // 随机抽奖 var randomIndex = Math.floor(Math.random() * winners.length); var randomWinner = winners[randomIndex]; // 输出抽奖结果 if (specifiedWinner) { if (winners.includes(specifiedWinner)) { document.getElementById("winner").innerHTML = "正在抽奖中..."; if (randomWinner == specifiedWinner) { document.getElementById("winner").innerHTML = specifiedWinner + " 中奖了!"; window.clearInterval(drawInterval); isDrawing = false; } } else { document.getElementById("winner").innerHTML = specifiedWinner + " 不在名单中,无法中奖。"; window.clearInterval(drawInterval); isDrawing = false; } } else { document.getElementById("winner").innerHTML = "正在抽奖中..."; window.setTimeout(function() { document.getElementById("winner").innerHTML = randomWinner + " 中奖了!"; isDrawing = false; }, 2000); } }, 100); } </script> </body> </html> ``` 这个程序中,我们首先定义了一个中奖人员名单。然后,我们在 HTML 中添加了一个文本框和一个按钮,用户可以在文本框中输入中奖人的名字,或者直接点击按钮进行随机抽奖。在 JavaScript 中,我们通过 `document.getElementById()` 方法获取文本框和中奖结果的元素,然后根据用户输入的中奖人名字或者随机生成的中奖人,判断是否中奖,并将结果输出到页面上。此外,我们添加了一个抽奖状态的变量 `isDrawing`,避免用户在抽奖过程中多次点击按钮。在开始抽奖时,我们启动了一个定时器,每隔 100 毫秒随机抽取一个中奖人,直到抽中指定的中奖人或者随机抽中一个中奖人后,再将结果输出到页面上。如果抽中指定的中奖人,则立即停止抽奖定时器,否则将在 2 秒后停止抽奖定时器。

相关推荐

最新推荐

recommend-type

微信小程序 摇一摇抽奖简单实例实现代码

主要介绍了微信小程序 摇一摇抽奖简单实例实现代码的相关资料,这里实现摇一摇抽奖的功能,需要的朋友可以参考下
recommend-type

微信小程序实现翻牌抽奖动画

主要为大家详细介绍了微信小程序实现翻牌抽奖动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

200行HTML+JavaScript实现年会抽奖程序

每个人只能中一次奖 4.可临时加场,现场输入奖品名、数量。额外窗口输入,避免被观众看到修改过程。 5.本地记录每轮的奖品和中奖名单 6.全屏显示。不确定现场的屏幕分辨率,故核心部分固定1024*768,居中显示;背景...
recommend-type

基于C#实现简单的随机抽奖小程序

临近春节,大街小巷的地方都有抽奖活动,那么基于C#是如何实现简单的抽奖程序的呢,下面小编给大家分享了具体代码,有需要的朋友参考下
recommend-type

yolov5-face-landmarks-opencv

yolov5检测人脸和关键点,只依赖opencv库就可以运行,程序包含C++和Python两个版本的。 本套程序根据https://github.com/deepcam-cn/yolov5-face 里提供的训练模型.pt文件。转换成onnx文件, 然后使用opencv读取onnx文件做前向推理,onnx文件从百度云盘下载,下载 链接:https://pan.baidu.com/s/14qvEOB90CcVJwVC5jNcu3A 提取码:duwc 下载完成后,onnx文件存放目录里,C++版本的主程序是main_yolo.cpp,Python版本的主程序是main.py 。此外,还有一个main_export_onnx.py文件,它是读取pytorch训练模型.pt文件生成onnx文件的。 如果你想重新生成onnx文件,不能直接在该目录下运行的,你需要把文件拷贝到https://github.com/deepcam-cn/yolov5-face 的主目录里运行,就可以生成onnx文件。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。