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

如果让你建设网站之前你会想什么seo关键词优化软件合作

如果让你建设网站之前你会想什么,seo关键词优化软件合作,购物网站主页设计图,芒果视频怎样下载到本地案例概述这个HTML页面实现了一个随机点名系统&#xff0c;包含以下功能&#xff1a;点击按钮随机选择一名学生每次点击随机改变背景颜色同时改变显示的学生姓名颜色显示区域全屏居中显示核心实现原理1. 页面结构与样式<body><div class"box">******</…

案例概述

这个HTML页面实现了一个随机点名系统,包含以下功能:

  1. 点击按钮随机选择一名学生

  2. 每次点击随机改变背景颜色

  3. 同时改变显示的学生姓名颜色

  4. 显示区域全屏居中显示

核心实现原理

1. 页面结构与样式
<body><div class="box">******</div><button class="btn">改变颜色</button><!-- JavaScript代码 -->
</body>
  • box元素

    • 占据整个视口(100%宽,100vh高)

    • 文本居中(text-align: center)

    • 行高等于高度(line-height: 100vh)实现完美垂直居中

    • 大号字体(font-size: 100px)

  • 按钮元素

    • 绝对定位(position: absolute)

    • 位于页面底部30%位置(bottom: 30%)

    • 水平居中(left: calc(50% - 100px))

 2. JavaScript核心逻辑
学生数据存储
var names = ["⽢⼤鹏", "廖亿城", "邓新宇", "徐正洋", "丁俊豪", "蒋⾦平", "李健", "廖伟鑫", "施雅典", "沈江余", "付锦铭", "罗志强", "董杨兴", "李伟"
];

使用数组存储学生姓名,便于随机访问。

随机数生成函数
function GetRandom(min, max) {return Math.floor(Math.random() * (max - min + 1) + min);
}

这个函数的作用是生成指定范围内的随机整数:

  1. Math.random() 生成[0,1)的随机小数

  2. 乘以范围长度 (max - min + 1) 得到[0, max-min+1)的随机浮点数

  3. 加上最小值min得到[min, max+1)的随机浮点数

  4. Math.floor() 向下取整,得到[min, max]的整数

按钮点击事件处理
btn.onclick = () => {// 生成随机RGBA颜色值var r = Math.floor(Math.random() * 255);var g = Math.floor(Math.random() * 255);var b = Math.floor(Math.random() * 255);var a = Math.random();// 随机选择学生var Random = GetRandom(0, names.length - 1);// 应用样式box.style.backgroundColor = `rgba(${r},${g},${b},${a})`;box.innerHTML = `${names[Random]}`;box.style.color = `rgb(${g},${r},${b})`;
}

关键知识点详解

1. Math.random()的应用

  • 背景颜色RGB分量:Math.random() * 255 → [0, 255)的浮点数 → Math.floor()取整

  • 透明度alpha:Math.random() → [0, 1)的浮点数

  • 学生索引:GetRandom(0, names.length-1) 确保不越界

2. RGBA颜色模型

  • RGB: 红、绿、蓝分量(0-255整数)

  • A: Alpha透明度(0-1浮点数)

  • CSS表示:rgba(255, 100, 50, 0.8)

3. 文本颜色设计技巧 

box.style.color = `rgb(${g},${r},${b})`;

这里使用RGB分量重新排列(g,r,b)生成文本颜色,确保:

  1. 文本颜色与背景颜色不同

  2. 但又有一定的关联性

  3. 避免完全随机的颜色组合导致对比度不足

4. 界面布局技巧

  • 垂直居中文本line-height = height 是最简单的单行文本垂直居中方案

  • 按钮居中left: calc(50% - 100px) 通过计算实现水平居中

  • 全屏背景width: 100%; height: 100vh; 确保覆盖整个视口

完整代码 

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>随机点名系统</title><style>* {margin: 0;padding: 0;box-sizing: border-box;font-family: 'Microsoft YaHei', sans-serif;}body {overflow: hidden;background: linear-gradient(135deg, #1a2a6c, #b21f1f, #1a2a6c);}.container {display: flex;flex-direction: column;justify-content: center;align-items: center;min-height: 100vh;padding: 20px;}.title {color: white;text-align: center;margin-bottom: 30px;text-shadow: 0 2px 10px rgba(0,0,0,0.5);}.title h1 {font-size: 2.8rem;margin-bottom: 10px;}.title p {font-size: 1.2rem;opacity: 0.8;}.box {width: 90%;max-width: 800px;height: 60vh;background-color: rgba(0, 0, 0, 0.7);border-radius: 20px;display: flex;justify-content: center;align-items: center;font-size: 4rem;color: white;text-align: center;padding: 20px;box-shadow: 0 10px 30px rgba(0,0,0,0.5);transition: all 0.5s ease;margin-bottom: 30px;border: 3px solid rgba(255,255,255,0.1);overflow: hidden;position: relative;}.btn {width: 220px;height: 80px;background: linear-gradient(45deg, #ff416c, #ff4b2b);color: white;font-size: 1.5rem;font-weight: bold;border: none;border-radius: 50px;cursor: pointer;box-shadow: 0 5px 15px rgba(0,0,0,0.3);transition: all 0.3s ease;outline: none;margin-top: 20px;}.btn:hover {transform: translateY(-5px);box-shadow: 0 8px 20px rgba(0,0,0,0.4);background: linear-gradient(45deg, #ff4b2b, #ff416c);}.btn:active {transform: translateY(0);}.info-panel {background: rgba(255,255,255,0.1);border-radius: 10px;padding: 15px 25px;color: white;font-size: 1.1rem;margin-top: 20px;text-align: center;backdrop-filter: blur(5px);}.student-count {font-weight: bold;color: #ffcc00;font-size: 1.2rem;}@media (max-width: 768px) {.box {font-size: 3rem;height: 50vh;}.title h1 {font-size: 2rem;}}</style>
</head><body><div class="container"><div class="title"><h1>随机点名系统</h1><p>点击按钮随机选择学生并改变背景颜色</p></div><div class="box" id="displayBox">******</div><button class="btn" id="actionBtn">随机点名</button><div class="info-panel">学生库中共有 <span class="student-count" id="countEl">14</span> 名学生</div></div><script>// 获取DOM元素const box = document.getElementById('displayBox');const btn = document.getElementById('actionBtn');const countEl = document.getElementById('countEl');// 学生名单const names = ["⽢⼤鹏", "廖亿城", "邓新宇", "徐正洋", "丁俊豪", "蒋⾦平", "李健", "廖伟鑫", "施雅典", "沈江余", "付锦铭", "罗志强", "董杨兴", "李伟"];// 显示学生数量countEl.textContent = names.length;// 随机数生成函数function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1) + min);}// 生成随机颜色function getRandomColor() {const r = Math.floor(Math.random() * 256);const g = Math.floor(Math.random() * 256);const b = Math.floor(Math.random() * 256);const a = Math.random().toFixed(2);return {bg: `rgba(${r},${g},${b},${a})`,text: `rgb(${g},${r},${b})`};}// 按钮点击事件btn.addEventListener('click', () => {// 生成随机颜色const colors = getRandomColor();// 随机选择学生const randomIndex = getRandom(0, names.length - 1);const selectedStudent = names[randomIndex];// 添加动画效果box.style.opacity = '0';box.style.transform = 'scale(0.9)';setTimeout(() => {// 应用样式和内容box.style.backgroundColor = colors.bg;box.textContent = selectedStudent;box.style.color = colors.text;// 恢复动画box.style.opacity = '1';box.style.transform = 'scale(1)';}, 300);});// 添加键盘支持document.addEventListener('keydown', (e) => {if (e.code === 'Space' || e.key === ' ') {btn.click();}});// 初始显示const initialColors = getRandomColor();box.style.backgroundColor = initialColors.bg;box.style.color = initialColors.text;</script>
</body>
</html>

效果展示:

代码说明 

  1. 响应式设计

    • 使用媒体查询适配移动设备

    • 设置最大宽度防止大屏显示问题

  2. 视觉增强

    • 添加渐变背景和阴影效果

    • 使用卡片式设计增强层次感

    • 添加边框和圆角提升质感

  3. 动画效果

    • 添加过渡动画使颜色变化更平滑

    • 点击时添加缩放效果增强交互感

  4. 功能扩展

    • 显示学生总数

    • 添加键盘支持(空格键触发)

    • 添加信息面板

  5. 代码优化

    • 使用现代DOM查询方法(getElementById)

    • 添加事件监听器替代onclick属性

    • 封装颜色生成函数

    • 添加详细注释

学习要点总结

  1. Math对象的实际应用

    • Math.random() 生成随机数

    • Math.floor() 向下取整

    • 组合使用生成指定范围的随机数

  2. CSS布局技巧

    • Flexbox实现居中布局

    • 视口单位(vh)的使用

    • 复杂背景和阴影效果

  3. 颜色模型理解

    • RGB和RGBA的区别与应用

    • 颜色对比度的重要性

    • 动态生成CSS颜色值

  4. DOM操作

    • 获取页面元素

    • 修改元素内容和样式

    • 添加事件监听器

  5. 响应式设计原则

    • 媒体查询的使用

    • 相对单位的应用

    • 移动优先的设计思想

        这个案例展示了如何将JavaScript基础知识(特别是Math对象)应用到实际项目中,通过组合HTML、CSS和JavaScript创建一个功能完整且视觉吸引人的应用。

http://www.dtcms.com/a/497126.html

相关文章:

  • 阿里巴巴吧网站怎么做开发网站的过程
  • 怎么做网站例如京东口碑好的网站推广软件
  • 百度网站地图天津网站建设-中国互联
  • 高效学习闭环:如何导出功能构建可复用的知识库?
  • 网站建设汇报评估关键词推广是什么意思
  • 外贸商城网站开发静安手机网站建设
  • 怎么做代理网站项目管理软件免费
  • 网站设计计划漳州模板网站建设
  • 网站管理与维护方案开个人网站如何赚钱
  • 哪里有做网站排名优化教学成果申报网站 化工专业建设
  • 做网站推广员工中企动力是不是国企
  • 外包网站都有哪些网络考试
  • 律师行业做网站的必要性珠海市住房和城乡建设局网站
  • 做服装到哪个网站拿货品质好中国建筑网官网企业愿景
  • Windows 固定 U 盘或移动硬盘的盘符
  • 做足彩推荐赚钱的网站手机访问跳转手机网站
  • 装修公司网站建设长春火车站照片
  • Linux 教程:如何查看服务器当前目录中的文件
  • 做网站备案与不备案的区别网站申请备案流程
  • Datawhale25年10月组队学习:math for AI+Task2线性代数
  • 南昌网站建设基本流程濮阳网站建设专家团队
  • 常州网站建设设计建设视频网站要求吗
  • 自己怎么搭建个人博客网站爱站工具包手机版
  • 石家庄微网站个人博客是什么
  • 第19讲:数据在内存中的存储
  • 湛江企业建站程序竞价网站托管
  • 做网站网站代理怎么找客源贵阳网站建设多少钱
  • 商城网站建设论坛买正品东西哪个网最好
  • 网站关键词排名快速提升长春做网站wang
  • 建筑焊工证查询网站官方网国家信用信息公示系统山东