当前位置: 首页 > news >正文

点击抽奖功能总结

首先用户打开网页,映入眼帘的是一个输入框和一个提交按钮。当用户在输入框中输入自己的年龄并点击提交后,系统会根据输入的年龄给出相应提示。若年龄达到 60 岁,页面将显示一个新的抽奖区域,用户可以点击 “抽奖” 按钮开始抽奖。随着每次点击,抽奖次数会实时更新显示,并且根据抽奖次数的不同,用户将有机会获得不同等级的奖项,从 “恭喜你,没抽到” 到 “隐藏款” 惊喜,充满了未知与期待。

html

<div class="text_box">
			<input type="text" class="text" />
			<input type="submit" id="sub" name="sub" onclick="sub_num()" />
		</div>

		<div class="draw_box">
			<input type="text" class="draw" readonly />
			<button onclick="click_draw()">抽奖</button>
		</div>

在这段 HTML 代码中,我们构建了两个主要的区域。text_box类所在的<div>包含一个用于输入年龄的文本框和一个提交按钮,用户在此输入年龄并提交。draw_box类所在的<div>初始时是隐藏的(通过 CSS 的display: none设置),当用户满足特定条件(年龄达到 60 岁)时,该区域将显示出来,其中包含一个只读的文本框用于显示抽奖次数,以及一个 “抽奖” 按钮。

css

	* {
				margin: 0;
				padding: 0;
			}

			.text_box {
				width: 30%;
				margin: 20px 10px 20px 20px;
			}

			.draw_box {
				display: none;
				margin: 20px 10px 20px 20px;
			}

CSS 部分,通配符选择器*用于清除所有元素的默认内外边距,保证页面布局的整洁统一。.text_box类设置了宽度以及外边距,定义了输入区域的大小和位置。.draw_box类除了设置外边距外,通过display: none确保抽奖区域初始时不显示在页面上,直到满足条件才通过 JavaScript 动态显示。

js

// 首先获取到第一个提交按钮和第二个的大div
			let submit = document.getElementById('sub');
			let draw = document.getElementsByClassName('draw_box')[0];
			let draw_num = document.getElementsByClassName('draw')[0];
			let draw_button = document.getElementsByTagName('button')[0];
			let submit_box = document.getElementsByClassName('text_box')[0];
			let click_num = 0;

			function sub_num() {
				let num = document.getElementsByClassName('text')[0];
				console.log(num);
				if (num.value <= 18) {
					alert('年龄不够哦');
					num.value = "";
				} else if (num.value > 18 && num.value < 35) {
					alert('青少年');
					num.value = "";
				} else if (35 <= num.value && num.value < 60) {
					alert('加油');
					num.value = "";
				} else if (num.value >= 60) {
					alert('年龄到啦!可以抽奖啦!');
					draw.style.display = 'block';
					num.value = "";


					// submit_box.style.display='none';
					setTimeout(function() {
						if (click_num <= 30) {
							alert('恭喜你,没抽到');
							draw.style.display = 'none';
							submit_box.style.display = 'block';
							alert('要在抽一次吗?');
						} else if (click_num > 30 && click_num < 60) {
							alert('太可惜了,二等奖');
							draw.style.display = 'none';
							submit_box.style.display = 'block';
							alert('要在抽一次吗?');
						} else if (click_num <= 60 && click_num < 120) {
							alert('恭喜你!一等奖');
							submit_box.style.display = 'block';
							draw.style.display = 'none';
							alert('要在抽一次吗?');
						} else {
							alert('隐藏款');
							submit_box.style.display = 'block';
							draw.style.display = 'none';
							alert('要在抽一次吗?');
						}
						draw_num.value = "";
						// click_num = 0;
					}, 10000)
				}

			}

			function click_draw() {
				click_num++;

				draw_num.value = click_num;

				console.log(click_num);
			}
  1. 变量初始化:​
  • 首先获取提交按钮元素并赋值给submit变量。​获取抽奖区域的<div>元素并赋值给draw变量。​获取抽奖次数显示的文本框元素并赋值给draw_num变量。​获取 “抽奖” 按钮元素并赋值给draw_button变量。​获取输入年龄的区域<div>元素并赋值给submit_box变量。​
  • 初始化click_num变量为 0,用于记录抽奖次数。​
  1. 提交年龄相关的函数sub_num:​
  • 获取输入年龄的文本框元素num。​
  • 根据输入的年龄进行条件判断:​
  • 若年龄小于等于 18 岁,弹出提示 “年龄不够哦”,并清空输入框内容。​
  • 若年龄大于 18 岁且小于 35 岁,弹出提示 “青少年”,并清空输入框内容。​
  • 若年龄在 35 岁到 60 岁之间,弹出提示 “加油”,并清空输入框内容。​
  • 若年龄大于等于 60 岁,弹出提示 “年龄到啦!可以抽奖啦!”,显示抽奖区域(通过draw.style.display = 'block'),清空输入框内容。同时,设置一个 10 秒的定时器(setTimeout),在 10 秒后根据当前的抽奖次数click_num判断奖项:​
  • 若click_num小于等于 30,弹出提示 “恭喜你,没抽到”,隐藏抽奖区域,显示输入年龄区域,并询问是否再抽一次。​
  • 若click_num大于 30 且小于 60,弹出提示 “太可惜了,二等奖”,隐藏抽奖区域,显示输入年龄区域,并询问是否再抽一次。​
  • 若click_num在 60 到 120 之间,弹出提示 “恭喜你!一等奖”,隐藏抽奖区域,显示输入年龄区域,并询问是否再抽一次。​
  • 若click_num大于 120,弹出提示 “隐藏款”,隐藏抽奖区域,显示输入年龄区域,并询问是否再抽一次。最后清空抽奖次数显示文本框的内容。​
  1. 抽奖函数click_draw:​
  • 每次点击 “抽奖” 按钮,click_num自增 1。​
  • 将更新后的click_num值显示在抽奖次数显示的文本框中(通过draw_num.value = click_num),并在控制台打印click_num值,方便调试。

相关文章:

  • 更改CMD背景图片
  • [特殊字符] 手机连接车机热点并使用 `iperf3` 测试网络性能
  • 让你的MCP符合openai协议
  • 时间序列频率转换
  • 【Python】读取xlsb或xlsx的单一或连续单元格工具类
  • 从0到1构建工具站 - day6 (在线编程工具-docker)
  • C++初阶-C++入门基础
  • ubuntu自动更新--unattended-upgrades
  • AWS服务器 磁盘空间升级到100G后,怎么使其生效?
  • 在conda虚拟环境安装GIT并且克隆github上项目指南(解决443问题)
  • 全栈开发套件Telerik DevCraft——赋能现代化应用构建
  • STL库里的常用容器
  • Redis 缓存 + MySql 持久化 实现点赞服务
  • kotlin协程
  • C++ Socket优化实战:提升网络应用的性能与效率
  • Prompt攻击
  • C++ 入门二:C++ 编程预备知识
  • JavaScript中Reflect对象指南:更智能的对象操作
  • BLE 协议栈事件驱动机制详解
  • Codeforces Round 1016 (Div. 3)题解
  • 河北建设部网站/适合发表个人文章的平台
  • 新乡 网站建设/seo营销策划
  • 东莞手机网站模板/舆情管理
  • 昆明优秀网站/seo整站优化
  • 设计网站下载/搜索排名优化
  • 两江新区建设管理局网站/如何做好线上营销