利用HTML+CSS+JS打造炫酷时钟网页的完整指南

引言

在现代Web开发中,制作一个引人注目的时钟网页是一种常见而令人愉悦的体验。本文将介绍如何使用HTML、CSS和JavaScript来创建一个炫酷的时钟网页,通过这个项目,你将学到如何结合这三种前端技术,制作一个动态且美观的时钟效果。

步骤一:创建HTML结构

首先,创建HTML文件,定义时钟网页的基本结构:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><link rel="stylesheet" href="css/styles.css" /><title></title></head><body><div class="clock"><div class="hr"><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div></div><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div><div class="number">3</div><div class="number">4</div><div class="number">5</div><div class="number">6</div><div class="number">7</div><div class="number">8</div><div class="number">9</div></div></div><div class="min"><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div><div class="number">3</div><div class="number">4</div><div class="number">5</div></div><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div><div class="number">3</div><div class="number">4</div><div class="number">5</div><div class="number">6</div><div class="number">7</div><div class="number">8</div><div class="number">9</div></div></div><div class="sec"><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div><div class="number">3</div><div class="number">4</div><div class="number">5</div></div><div class="strip"><div class="number">0</div><div class="number">1</div><div class="number">2</div><div class="number">3</div><div class="number">4</div><div class="number">5</div><div class="number">6</div><div class="number">7</div><div class="number">8</div><div class="number">9</div></div></div></div><script type="text/javascript" src="js/index.js"></script></body>
</html>

步骤二:美化时钟样式(CSS)

创建一个名为 styles.css 的CSS文件,用于美化时钟的外观:

* {box-sizing: border-box;padding: 0;margin: 0;
}html {place-items: center;
}body {font-family: monospace;font-size: 2rem;min-height: 100vh;display: grid;overflow-y: hidden;place-items: center;background: linear-gradient(-45deg, #c4d2ef, #dfe6f6);
}.hr,
.min,
.sec {display: grid;grid-template-columns: 1fr 1fr;grid-gap: 3rem;grid-row: 1/2;align-items: start;
}.number {padding: 0.5em;width: 4rem;height: 4rem;display: grid;place-items: center;color: #f9fbfd;transition: all 500ms 100ms ease;border-radius: 50%;
}.number.pop {color: #3e6ccb;font-weight: bold;transform: scale(1.3);background-color: #dfe6f6;box-shadow: -10px -10px 20px -5px #f9fbfd, 10px 10px 20px #a9bee8;
}.strip {transition: transform 500ms ease-in-out;border-radius: 8px;background-color: #dfe6f6;box-shadow: -10px -10px 20px -5px #f9fbfd, 10px 10px 20px #a9bee8;
}.clock {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 5rem;height: 4rem;position: relative;padding: 0 4rem;
}

步骤三:实现时钟逻辑(JavaScript)

在 index.js 文件中,编写JavaScript代码来获取当前时间,并根据时间更新时钟的指针位置:

const strips = [...document.querySelectorAll(".strip")];
const numberSize = "4"; var lastTime = new Array(-1, -1, -1)function highlight(strip, d) {strips[strip].querySelector(`.number:nth-of-type(${d + 1})`).classList.add("pop");setTimeout(() => {strips[strip].querySelector(`.number:nth-of-type(${d + 1})`).classList.remove("pop");}, 950); 
}function stripSlider(strip, id, number) {let d1 = Math.floor(number / 10);let d2 = number % 10;if (lastTime[id] == -1 || lastTime[id] != number) {strips[strip].style.transform = `translateY(${d1 * -numberSize}rem)`;strips[strip + 1].style.transform = `translateY(${d2 * -numberSize}rem)`;lastTime[id] = number;}highlight(strip, d1);highlight(strip + 1, d2);
}function updateClock() {const time = new Date();const hours = time.getHours();const mins = time.getMinutes();const secs = time.getSeconds();stripSlider(0, 0, hours);stripSlider(2, 1, mins);stripSlider(4, 2, secs);
}setInterval(updateClock, 1000);updateClock();

结语

通过本文的指南,你已经学会如何使用HTML、CSS和JavaScript创建一个炫酷的时钟网页。这个项目结合了这三种前端技术,展示了它们的协同作用。通过这个实践,你不仅提升了前端技术的应用能力,还掌握了制作动态效果的基本原理。希望这个时钟网页项目能够成为你继续学习前端开发的良好起点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探索 Android 中的 Runtime

深入探索 Android 中的 Runtime 一、什么是 Runtime二、Android 中的 Runtime 类型2.1. Dalvik Runtime2.2. ART&#xff08;Android Runtime&#xff09; 三、Runtime 的作用和特点3.1. 应用程序执行环境3.2. 跨平台支持3.3. 性能优化3.4. 应用程序优化 四、与应用开发相关的重…

Unity3D Pico VR 手势识别物体交互 适配 MRTK3

当前Pico已经支持手势识别了&#xff0c;但是提供的PICO Unity Integration SDK 中是没有手势和物体交互的功能&#xff0c;Unity XR Interaction Toolkit提供的手势识别物体交互对 Quest适配的挺好的&#xff0c;Pico 当前只能用指尖点触还不能对物体进行抓握以及手势控制射线…

JS-WebAPIs-其他事件(三)

• 页面加载事件 页面加载事件主要有二种事件&#xff0c;分别是load和DOMContentLoaded 加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时触发的事件为什么要学&#xff1f; 有些时候需要等页面资源全部处理完了做一些事情老代码喜欢把 scrip…

Hadoop详解

Hadoop 概念 就是一个大数据解决方案。它提供了一套分布式系统基础架构。 核心内容包含 hdfs 和mapreduce。hadoop2.0 以后引入 yarn. hdfs 是提供数据存储的&#xff0c;mapreduce 是方便数据计算的。 hdfs 又对应 namenode 和 datanode. namenode 负责保存元数据的基本信息…

YZ系列工具之YZ04:文本批量替换使用说明文档

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

解锁新身份:无忧秘书智脑-AI智能直播的10宫格姓氏头像制作秘籍

在这个信息爆炸的时代&#xff0c;一个独特的标识是个人或品牌在众多竞争者中脱颖而出的关键。而头像作为我们日常在线身份的一部分&#xff0c;更是我们展示个性和风格的重要窗口。无忧秘书智脑-AI智能直播最新推出的专属姓氏10宫格头像功能&#xff08;ai6ai69)&#xff0c;为…

【Python学习】Python学习21- 正则表达式(2)

目录 【Python学习】Python学习21- 正则表达式&#xff08;2&#xff09; 前言字符串检索和替换repl 参数是一个函数参考 文章所属专区 Python学习 前言 本章节主要说明Python的正则表达式。 正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与…

MySQL缓冲池(Buffer Pool)深入解析:原理、组成及其在数据操作中的核心作用

在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;性能优化一直是数据库管理员和开发者关注的焦点。作为最流行的开源RDBMS之一&#xff0c;MySQL提供了多种优化手段&#xff0c;其中InnoDB存储引擎的缓冲池&#xff08;Buffer Pool&#xff09;是最为关键的…

小埋公司的IPO方案的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 题目大意&#xff1a; 主要思路&#xff1a; 但是but 代码code&#xff1a; 时间限制: 500ms 空间限制: 65536kB 原题…

pytest 参数化测试用例构建

在之前的文章中主要分享了 pytest 的实用特性&#xff0c;接下来讲 Pytest 参数化用例的构建。 如果待测试的输入与输出是一组数据&#xff0c;可以把测试数据组织起来用不同的测试数据调用相同的测试方法。参数化顾名思义就是把不同的参数&#xff0c;写到一个集合里&#xf…

Apipost智能Mock教程

在接口开发过程中&#xff0c;Mock功能可以帮助开发者快速测试和验证接口的正确性和稳定性&#xff0c;以便快速迭代和修复问题。Apipost推出智能Mock功能&#xff0c;可以在智能期望中填写一些触发条件&#xff0c;开启后&#xff0c;Apipost会根据已设置的触发条件&#xff0…

大创项目推荐 疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据全国疫情数据分析与3D可视化 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff0…

力扣70. 爬楼梯(动态规划 Java,C++解法)

Problem: 70. 爬楼梯 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来&#xff0c;所以可以联想到动态规划&#xff0c;具体如下&#xff1a; 1.定义多阶段决策模型&#xff1a;对于每一上台阶看作一种状…

zookeeper window 安装

下载 Apache ZooKeeper 解压Zookeeper安装包到指定目录&#xff0c;注意目录不要有空格。 备份zoo_sample.cfg并改名zoo.cfg 注意&#xff1a;此处的路径一定要使用双斜杠" \\ " D:\\apache-zookeeper-3.8.3-bin\\data 新建环境变量&#xff1a;ZOOKEEPER_HOME D…

如何利用chatgpt提升工作效率?教你chatGTP怎么提高效率

如何利用chatgpt提升工作效率&#xff1f;教你chatGTP怎么提高效率 在当今信息时代&#xff0c;人们的工作需要处理的信息量越来越大&#xff0c;而随着人工智能技术的不断发展&#xff0c;越来越多的企业开始应用生成式AI系统ChatGPT来提高工作效率。下面介绍如何利用ChatGPT来…

鸿蒙原生应用/元服务开发-延迟任务说明(一)

一、功能介绍 应用退至后台后&#xff0c;需要执行实时性要求不高的任务&#xff0c;例如有网络时不定期主动获取邮件等&#xff0c;可以使用延迟任务。当应用满足设定条件&#xff08;包括网络类型、充电类型、存储状态、电池状态、定时状态等&#xff09;时&#xff0c;将任务…

【⭐AI工具⭐】实用工具推荐

目录 壹 实用工具工具合集TinyWowHiPDF 公式处理SimpleTex公式中常用的希腊字母符号公式在论文中的格式 图像处理BgRemoverPix Fix像素蒸发Photopea 音频处理啦啦爱 笔记整理飞书妙记 素材整理Eagle 其它一次性临时电子邮件近邻词汇检索据意查句诗三百能不能好好说话&#xff1…

PaddleDetection学习3——使用Paddle-Lite在 Android 上部署PicoDet模型(fp16)

使用Paddle-Lite在 Android 上运行PicoDet模型&#xff08;fp16&#xff09; 1. 环境准备2. 部署步骤2.1 下载Paddle-Lite-Demo2.2 打开 picodet_detection_demo项目2.2.1 修改build.gradle&#xff0c;配置国内镜像仓库2.2.2 NDK 配置错误问题2.2.3 gradle.properties文件配置…

flask分页宏增加更多参数

背景&#xff1a;我正在开发一个博客&#xff0c;核心的两个model是文章和文章类别。 现在想要实现的功能是&#xff1a;点击一个文章类别&#xff0c;以分页的形式显示这个文章类别下的所有文章&#xff0c;类似这种效果。 参考的书中分页宏只接受页数这一个参数&#xff0c;…

iconfont矢量图标样式引入

font-face {font-family: "iconfont"; /* Project id 2848128 */src: url(//at.alicdn.com/t/font_2848128_mchidofoxgo.woff2?t1643706746390) format(woff2),url(//at.alicdn.com/t/font_2848128_mchidofoxgo.woff?t1643706746390) format(woff),url(//at.alicdn…