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

21.前端入门必看!猜数字小游戏和表白墙的完整代码实现

目录

一、 案例一:猜数字小游戏

1. 预期效果

2. 完整代码实现

二、 案例二:表白墙

1. 预期效果

2. 完整代码实现

三、 总结


今天给大家分享两个非常经典的 HTML + JavaScript 入门级实战小案例。一个是互动性很强的“猜数字小游戏”,另一个是充满浪漫气息的“表白墙”。这两个案例非常适合初学者用来巩固 DOM 操作和事件绑定,话不多说,直接上干货!


一、 案例一:猜数字小游戏

这个游戏的功能很简单:系统随机生成一个 1-100 的数字,用户输入猜测的数字,点击“猜”按钮后,系统会提示“猜大了”、“猜小了”或“猜中了”,并统计猜测次数。

1. 预期效果

界面布局非常直观,包含重新开始游戏的按钮、输入框、猜的按钮以及显示次数和结果的区域。

2. 完整代码实现

为了让你看得更清楚,我按照结构、样式和脚本的顺序把代码贴出来。

HTML 结构:

<body> <input class="reset_button" type="button" value="重新开始一局游戏" onclick="reSet()"><br> 请输入要猜的数字:<input type="text" value="0" class="to_guess_num"><input type="button" value="猜" onclick="Guess()"><br> 已经猜的次数:<span class="has_guess_num">0</span><br> 结果:<span class="result"></span><br> </body>

JavaScript 逻辑:

<script> // 输入的数字 let to_guess_num_element = document.querySelector('.to_guess_num') console.dir(to_guess_num_element) // 已经猜的次数 let input_num_element = document.querySelector('.has_guess_num') console.dir(input_num_element) // 猜测的结果 let result_element = document.querySelector('.result') console.dir(result_element) function reSet() { to_guess_num_element.value = 0 input_num_element.innerHTML = 0 result_element.innerHTML = "" } let num = Math.floor(Math.random() * 100) + 1; console.log(num) function Guess() { input_num_element.innerHTML = parseInt(input_num_element.innerHTML) + 1 if(num < parseInt(to_guess_num_element.value)) { result_element.innerHTML = "猜大了" result_element.className = 'false' } else if(num > parseInt(to_guess_num_element.value)) { result_element.innerHTML = "猜小了" result_element.className = 'false' } else { result_element.innerHTML = "猜中了" result_element.className = 'true' } } </script>

CSS 样式:

<style> .false { color: red; } .true { color: green; } </style>

二、 案例二:表白墙

这个案例实现了一个简单的表白墙功能,用户输入“谁”、“对谁”、“说什么”,点击提交后,信息会显示在页面上。

1. 预期效果

界面包含三个输入框和一个提交按钮,输入信息后点击提交,内容会动态添加到页面中。

2. 完整代码实现

HTML 结构:

<body> <div class="container"> <h1>表白墙</h1> <p>输入相关信息,点击提交数据将会展示在表格中</p> <div class="div1"> <span>谁:</span><input type="text" class="edit"> </div> <div class="div1"> <span>对谁:</span><input type="text" class="edit"> </div> <div class="div1"> <span>说:</span><input type="text" class="edit"> </div> <div class="div1"> <input type="button" value="提交" class="submit" onclick="Submit()"> </div> </div> </body>

CSS 样式:

<style> * { margin: 0px; padding: 0px; } .container { width: 400px; margin: 0 auto; } h1 { text-align: center; margin-bottom: 40px; } p { text-align: center; color: gray; line-height: 63px; } .div1 { display: flex; justify-content: center; align-items: center; } .edit { margin-bottom: 20px; width: 200px; height: 30px; } span { width: 50px; margin-bottom: 20px; } .submit { background-color: rgb(255, 157, 0); color: white; width: 260px; height: 30px; border: none; border-radius: 5px; } .submit:active { background-color: gray; } </style>

JavaScript 逻辑:

<script> function Submit() { let edits = document.querySelectorAll('.edit') console.dir(edits) let from = edits[0].value let to = edits[1].value let message = edits[2].value console.log(from + " " + to + " " + message) let div = document.createElement('div') div.className = "div1" div.innerHTML = from + "对:" + to + "说:" + message console.log(div) let container = document.querySelector('.container') container.appendChild(div) } </script>

三、 总结

这两个案例涵盖了 HTML 的基本结构、CSS 的简单样式以及 JavaScript 的核心操作(如querySelectorgetElementByIdcreateElementappendChild等),非常适合初学者练习。希望对你有所帮助,如果有任何问题,欢迎在评论区留言交流!

http://www.gsyq.cn/news/1453032.html

相关文章:

  • 3步搞定无边框游戏窗口:告别Alt+Tab卡顿的游戏窗口管理神器
  • 成套收藏珠宝变现,石家庄合规首饰回收机构挑选干货汇总 - 合扬奢侈品交易中心
  • YOLOv8训练自己的跌倒检测数据集:从数据爬取、标注到模型调优的完整避坑指南
  • 2026年重庆AI精准获客与GEO优化:B2B企业短视频运营全链路破局指南 - 企业名录优选推荐
  • 微信投票小程序排行榜:云众评选操作步骤详解 - 微信投票小程序
  • 保姆级教程:在ROS Noetic下用Gazebo和MoveIt玩转UR5机械臂仿真(附Python控制代码)
  • 黑马复盘 -- 优惠券秒杀
  • SWT桌面应用专用图表库:轻量Java组件,支持线图/柱状图/散点图等10余种交互式图表
  • OFDM与OTFS信号智能识别工具:含多SNR实测数据集及可直接运行的CNN/Transformer模型
  • 2026彭祖蜜深度测评:如何为健康饮品匹配最佳方案? - 资讯纵览
  • 别再乱装字体了!手把手教你用FontForge和Python批量检查字体版权与字符集
  • 2025年Q3国内高纯石英砂优质供应商精选 - 安互工业信息
  • 2026基坑气膜生产厂家哪家好?依托行业规范,高性价比基坑气膜生产厂家推荐 - 商业新知
  • Ubuntu登录界面黑屏?手把手教你用lightdm --debug排查‘Failed to Start Light Display Manager’
  • 2026年Q2高纯石英砂供应商精选榜单 - 安互工业信息
  • AI模型注册不是加个API那么简单:12项核心元数据规范+8类自动化校验规则全披露
  • 如何快速掌握GetQzonehistory:QQ空间历史说说备份的完整实践指南
  • 用Python爬取中国大学MOOC近30万条评论,这份数据分析实战指南请收好
  • 遥感影像分割不再靠蒙:手把手教你用eCognition ESP2插件找到最佳尺度参数
  • 成都环保板材优质生产企业排行:核心资质与口碑一览(2026 年 6 月版,内含相关FAQ) - 互联网科技品牌测评
  • AI Agent 蓄势待发:五大趋势重塑未来,三大挑战待解!
  • 阿里云 SLS 日志服务完全指南 — 从配置到生产实践
  • # 2026年国内蝶阀公司实力排行榜:广东佛山等地五大权威推荐 - 十大品牌榜
  • 从HashMap到ConcurrentHashMap:聊聊Java 8中compute方法如何帮你写出更安全的并发代码
  • 杭州二手名表回收水深?实地测评五家门店避开压价陷阱 - 奢侈品回收测评
  • # 2026年国内不锈钢阀门公司实力排行榜:广东佛山基于阀门行业五大推荐榜单 - 十大品牌榜
  • 构建数据高速公路:从Kafka到Flink的实时数据处理架构与调优实践
  • 广州电磁流量计厂家十大品牌推荐——选型报价看这里! - 康宝莱智慧水务
  • 从边界防御到零信任:现代网络安全架构的范式转变与实践
  • 千兆像素全景技术:从图像采集到网页交互的完整实现指南