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

【前端】使用 HTML、CSS 和 JavaScript 创建一个数字时钟和搜索功能的网页

文章目录

  • ⭐前言
  • ⭐一、项目结构
  • ⭐二、HTML 结构
  • ⭐三、CSS 样式
  • ⭐四、JavaScript 功能
  • ⭐五、运行效果
  • ⭐总结


标题详情
作者JosieBook
头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师
博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C++)、数据库、操作系统、大数据、人工智能、工控、网络、程序人生
口号成为你自己,做你想做的
欢迎三连👍点赞、✍评论、⭐收藏

⭐前言

在本篇博客中,我们将介绍如何使用 HTML、CSS 和 JavaScript 创建一个包含数字时钟和搜索功能的简单网页。这个网页不仅具有现代的外观,还能实时显示当前时间,并允许用户输入搜索内容。

⭐一、项目结构

我们的项目结构如下所示:

test├── index.html├── myCss.css└── myJsp.js
  • index.html:主页面文件,包含 HTML 结构和基本样式。
  • myCss.css:自定义样式文件,用于美化页面。
  • myJsp.js:JavaScript 文件,负责实现时钟和搜索功能的逻辑。

⭐二、HTML 结构

index.html 文件中,我们首先定义了基本的 HTML 结构。我们使用了 Bootstrap 框架来快速构建响应式布局。以下是主要的 HTML 代码片段:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content="XX科技公司 - 领先的软件开发解决方案提供商"><title>XX科技公司 | 创新驱动未来</title><script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script><script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script><script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><link href="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/5.15.4/css/all.min.css" rel="stylesheet" type="text/css"><link rel="stylesheet" href="myCss.css">
</head>
<body>
<i class="fas fa-ellipsis-v uil uil-ellipsis-v dot-menu-btn" style="color:#fff" id="active-menu"></i>
<ul class="dot-menu" id="active-menu"><li class="menu-item" id="active-menu"><span class="clock-format-text" id="active-menu">24-Hour Format</span><div class="format-switch-btn" id="active-menu" date-format="12"></div></li>
</ul><div class="container"><div class="row height d-flex justify-content-center align-items-center"><div class="col-md-8"><div class="search"><i class="fa fa-search"></i><input type="text" class="form-control" id="search-input" placeholder="Have a question? Ask Now"><button class="btn btn-primary" id="search-button">Search</button></div></div></div>
</div><div class="time"><span class="hours">00</span><span class="dots">:</span><span class="minutes">00</span><div class="right-side"><span class="period">AM/PM</span><span class="seconds">00</span></div>
</div><div class="calender"><span class="month-name">Month</span>,<span class="day-name">Day</span><span class="day-num">00</span>
</div><script src="myJsp.js"></script>
</body>
</html>

⭐三、CSS 样式

myCss.css 文件中,我们使用了一些 CSS 来美化页面的外观。以下是一些关键的样式:

@import url("https://fonts.googleapis.com/css2?family=Poppins:weight@100;200;300;400;500;600;700;800&display=swap");* {font-family: 'Poppins', sans-serif;margin: 0;padding: 0;box-sizing: border-box;
}body {min-height: 100vh;display: flex;justify-content: center;align-items: center;background: #2e2e44;
}.height {height: 100vh
}.search {position: relative;box-shadow: 0 0 40px rgba(51, 51, 51, .1)
}.search input {height: 60px;text-indent: 25px;border: 2px solid #d6d4d4
}.search input:focus {box-shadow: none;border: 2px solid blue
}.search .fa-search {position: absolute;top: 20px;left: 16px
}.search button {position: absolute;top: 5px;right: 5px;height: 50px;width: 110px;background: blue
}.digital-clock {position: relative;color: #fff;background: #2e2e44;width: 425px;padding: 20px 45px;box-shadow: 0 5px 25px rgba(14, 21, 37, 0.8);border-radius: 10px;display: flex;justify-content: center;align-items: center;flex-direction: column;
}.digital-clock:before {content: '';position: absolute;background: linear-gradient(45deg, #24ff6d, #2f93f1, #ff5e9a);background-size: 200% 200%;top: -5px;left: -5px;bottom: -5px;right: -5px;z-index: -1;filter: blur(40px);animation: glowing 10s ease infinite;
}@keyframes glowing {0% {background-position: 0 50%;}50% {background-position: 100% 50%;}100% {background-position: 0 50%;}
}.time {position: relative;display: flex;justify-content: center;align-items: center;}.hours,
.dots,
.minutes {display: flex;justify-content: center;align-items: center;font-weight: 600;padding: 0 10px;line-height: 125px;
}.hours,
.minutes {font-size: 6.5em;width: 125px;
}.dots {font-size: 5em;color: #929292;
}.hours {background: -webkit-linear-gradient(90deg, #634dff, #5fd4ff);-webkit-text-fill-color: transparent;-webkit-background-clip: text;
}.minutes {background: -webkit-linear-gradient(90deg, #ff5e9e, #ffb960);-webkit-text-fill-color: transparent;-webkit-background-clip: text;
}.right-side {position: relative;display: flex;justify-content: center;align-items: center;flex-direction: column;margin-left: 10px;
}.period,
.seconds {font-size: 1.2em;font-weight: 500;
}.period {transform: translateY(-20px);background: -webkit-linear-gradient(90deg, #f7b63f, #faf879);-webkit-text-fill-color: transparent;-webkit-background-clip: text;
}.seconds {transform: translateY(16px);background: -webkit-linear-gradient(90deg, #24ff6d, #2f93f1);-webkit-text-fill-color: transparent;-webkit-background-clip: text;
}.calender {display: flex;justify-content: center;align-items: center;font-size: 1.3em;font-weight: 500;margin-bottom: 5px;background: -webkit-linear-gradient(90deg, #ae4af6, #ff98d1);-webkit-text-fill-color: transparent;-webkit-background-clip: text;
}.day-name,
.day-num,
.year {margin-left: 8px;
}.dot-menu-btn {position: absolute;top: 0;right: 0;margin: 10px;color: #efefef;font-size: 1.5em;cursor: pointer;
}.dot-menu {z-index: 999;position: absolute;top: 7px;right: 5px;list-style: none;background: #353e54;padding: 10px 20px;border-radius: 5px;box-shadow: 0 5px 25px rgba(0, 0, 0, 0.5);visibility: hidden;opacity: 0;transition: 0.4s ease;
}.dot-menu.active {visibility: visible;opacity: 1;
}.menu-item {display: flex;justify-content: center;align-items: center;
}.clock-format-text {color: #efefef;font-size: 0.9em;margin-right: 20px;
}.format-switch-btn {width: 35px;height: 15px;background: #485470;border-radius: 75px;box-shadow: inset 2px 2px 4px rgba(255, 255, 255, 0.1),inset -2px -2px 4px rgba(0, 0, 0, 0.2);cursor: pointer;display: flex;justify-content: center;align-items: center;
}.format-switch-btn:before {content: '';position: absolute;width: 14px;height: 14px;background: #ff5e9a;border-radius: 50%;box-shadow: 0 5px 25px #ff5e9a;transform: translateX(-10px);transition: 0.4s ease;transition-property: background, transform;
}.format-switch-btn.active:before {background: #0bff8d;box-shadow: 0 5px 25px #0bff8d;transform: translateX(10px);
}

⭐四、JavaScript 功能

myJsp.js 文件中,我们实现了数字时钟和搜索功能。以下是相关的 JavaScript 代码:

//js for switch clock formatconst formatSwitchBtn = document.querySelector(".format-switch-btn");formatSwitchBtn.addEventListener("click", () => {formatSwitchBtn.classList.toggle("active");var formatValue = formatSwitchBtn.getAttribute("date-format");if (formatValue === "12") {formatSwitchBtn.setAttribute("date-format", "24");}else {formatSwitchBtn.setAttribute("date-format", "12");}
});//Get Current Time In Javascript
function clock() {var today = new Date();var hours = today.getHours();var minutes = today.getMinutes();var seconds = today.getSeconds();let period = "AM";//set the time periodif (hours >= 12) {period = "PM";}//set 12 hour clock formatvar formatValue = formatSwitchBtn.getAttribute("date-format");if (formatValue === "12") {hours = hours > 12 ? hours % 12 : hours;}//add 0 for the value lower than 10if (hours < 10) {hours = "0" + hours;}if (minutes < 10) {minutes = "0" + minutes;}if (seconds < 10) {seconds = "0" + seconds;}document.querySelector(".hours").innerHTML = hours;document.querySelector(".minutes").innerHTML = minutes;document.querySelector(".period").innerHTML = period;document.querySelector(".seconds").innerHTML = seconds;
}
var updateClock = setInterval(clock, 1000);// get the date in jsvar today = new Date();
const dayNum = today.getDate();
const year = today.getFullYear();
const dayName = today.toLocaleString("default", { weekday: "long" });
const monthName = today.toLocaleString("default", { month: "short" });document.querySelector(".month-name").innerHTML = monthName;
document.querySelector(".day-name").innerHTML = dayName;
document.querySelector(".day-num").innerHTML = dayNum;
// document.querySelector(".year").innerHTML = year;//js for dot menu toglleconst dotmenuBtn = document.querySelector(".dot-menu-btn");
const dotMenu = document.querySelector(".dot-menu");
dotmenuBtn.addEventListener("click", () => {dotMenu.classList.toggle("active");
});document.addEventListener("click", (e) => {if (e.target.id !== "active-menu") {dotMenu.classList.remove("active");}
});// 添加搜索按钮的点击事件
document.getElementById("search-button").addEventListener("click", function() {var searchInput = document.getElementById("search-input").value;if (searchInput.trim() === "") {alert("请输入搜索内容!");} else {alert("您搜索的内容是: " + searchInput);}
});

⭐五、运行效果

在这里插入图片描述

调整时间格式:

在这里插入图片描述

按钮提交提示:

在这里插入图片描述

⭐总结

通过以上步骤,我们成功构建了一个包含数字时钟和搜索功能的网页。用户可以在输入框中输入问题并点击搜索按钮,页面会弹出提示框显示用户输入的内容。同时,数字时钟会实时更新,显示当前的时间。

这个项目展示了如何结合 HTML、CSS 和 JavaScript 创建一个简单而实用的网页应用。希望这个示例能为你的网页开发之旅提供灵感!

相关文章:

【前端】使用 HTML、CSS 和 JavaScript 创建一个数字时钟和搜索功能的网页

文章目录 ⭐前言⭐一、项目结构⭐二、HTML 结构⭐三、CSS 样式⭐四、JavaScript 功能⭐五、运行效果⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#xff08;,NET/Java/Python/C&#xff09;、数…...

地理信息可视化技术大全【WebGIS 教程一】

前言&#xff1a; 在当今数据驱动的时代&#xff0c;地理信息技术&#xff08;GIS&#xff09;和空间数据可视化已成为科学研究、商业决策和智慧城市建设的重要工具。随着Web技术的快速发展&#xff0c;基于浏览器端的地图渲染和地理信息处理能力显著增强&#xff0c;各类开源与…...

SLAM十四讲【四】相机与图像

SLAM十四讲【四】相机与图像 SLAM十四讲【一】基本概念 SLAM十四讲【二】三维空间刚体运动 SLAM十四讲【三】李群与李代数 SLAM十四讲【四】相机与图像 SLAM十四讲【五】线性优化 SLAM十四讲【六】视觉里程计 SLAM十四讲【七】回环检测 SLAM十四讲【八】建图 文章目录 SLAM十四…...

深入理解Java享元模式及其线程安全实践

引言 在软件系统中&#xff0c;当需要处理海量细粒度对象时&#xff0c;直接创建大量实例可能会导致内存消耗激增和性能下降。享元模式&#xff08;Flyweight Pattern&#xff09;通过共享对象内部状态&#xff0c;成为解决这类问题的经典方案。然而在多线程环境下&#xff0c…...

类和对象-运算符重载-C++

1.加号运算符重载 1.成员函数重载调用 函数的定义部分&#xff08;这里的person是返回值类型&#xff0c;不是说构造函数&#xff09; class person { public:person operator(person& p){person temp;temp.a this->a p.a;temp.b this->b p.b;return temp;}in…...

2000-2019年各省地方财政耕地占用税数据

2000-2019年各省地方财政耕地占用税数据 1、时间&#xff1a;2000-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、地方财政耕地占用税 4、范围&#xff1a;31省 5、指标说明&#xff1a;耕地占用税是地方财政的一种税收&…...

从零到一开发一款 DeepSeek 聊天机器人

AI聊天机器人 目标设计方案系统架构技术选型功能模块 实现代码环境配置安装依赖 核心代码API 请求函数主循环函数 功能扩展1. 情感分析2. 多语言支持3. 上下文记忆4. 用户身份识别 总结附录 目标 开发一个智能聊天机器人&#xff0c;旨在为用户提供自然、流畅的对话体验。通过…...

S32K144外设实验(五):FTM周期中断

文章目录 1. 概述1.1 时钟系统1.2 实验目的 2. 代码的配置 1. 概述 1.1 时钟系统 FTM的CPU接口时钟为SYS_CLK&#xff0c;在RUN模式下最高80MHz。模块的时钟结构如下图所示。 从上图中可以看出&#xff0c;FTM模块的功能时钟为SYS_CLK&#xff0c;计数器的时钟源可以来源于三…...

Android 静态壁纸设置实现方案

提示&#xff1a;Android 平台&#xff0c;静态壁纸实现方案 文章目录 需求&#xff1a;Android 实现壁纸 设置场景 参考资料实现方案直接调用系统 API,WallpaperManager 来实现 wallpaperManager.setResource系统源码分析系统app WallpaperPickerWallpaperPickerActivity ->…...

在计算进程D状态持续时间及等IO的时间遇到的一处问题

一、背景 之前的博客 线程每次iodelay监控及D状态开始和结束监控并做堆栈记录-CSDN博客 里&#xff0c;我们讲到了通过内核模块抓取D状态的进程和等IO事件的方法&#xff0c;里面也用到了通过获取rq的symbol&#xff0c;再去获取rq里的rq_clock_task时间的方法&#xff08;内核…...

Android11-12-13 替换系统默认壁纸

替换默认壁纸&#xff0c;是客需中再普通不过的需求&#xff0c;这里整理作为笔记记录 文章目录 需求场景 关联资料需求实现拓展总结 需求 客制化客户壁纸需求&#xff0c;替换客户定制的壁纸。 场景 手机-平板相关产品&#xff0c;各种广告机、工控、消费级产品&#xff0c…...

Buffer overFolw---Kryo序列化出现缓冲区溢出的问题解决

问题&#xff1a; 由于我的数据量太大&#xff0c;我设置批次为10000万&#xff0c;50w数据大概有400M左右&#xff0c;然后进行spark数据处理时候报错为org.apache.spark.SparkException:Kryo serialization failed:Buffer overFolw.Available:0,rquired 58900977,To …...

什么是索引?为什么要使用B树作为索引数据结构?

MySQL的事务特性 1.原子性:原子性就是这个事件要么执行完,要么没执行,不会存在中间状态,与C中华那个加锁避免多线程竞争是一个道理; 2.一致性:保持事件的操作对象双方某数据之和是不变的,就以转账为例,A转给B100块,那么A的余额多100,B的余额就必须少100; 3.隔离性:隔离就是独…...

【Linux】线程基础

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.背景知识02.线程概念简单使用线程线程调度成本更低 01.背景知识 OS进行内存管理&#xff0c;不是以字节为单位的&#xff0c;而是以内存块为单位的&#xff0c;默认大小为4kb&…...

TCP netstat TIME_WAIT CLOSE_WAIT

TIME_WAIT is different from CLOSE_WAIT, and it’s not necessarily a client-side fault. It happens due to how TCP handles connection termination. Key Differences TCP StateCauseWho is responsible?Fix/OptimizationCLOSE_WAITServer didn’t close() the socket…...

「宇树科技」13家核心零部件供应商梳理!

2025年2月6日&#xff0c;摩根士丹利&#xff08;Morgan Stanley&#xff09;发布最新人形机器人研报&#xff1a;Humanoid 100: Mapping the Humanoid Robot Value Chain&#xff08;人形机器人100&#xff1a;全球人形机器人产业链梳理&#xff09;。 2025年2月20日&#xf…...

Spring Boot 项目打包运行

打包成jar包&#xff0c;执行 java -jar 包名&#xff1b; 保证打出的jar包是独立可运行的包&#xff0c;需要xml中添加插件配置 <!-- SpringBoot应用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId&…...

数据结构八股

线性数据结构 数组:数组的内存空间是连续的&#xff0c;随机访问的时间复杂度是01&#xff0c;适用于需要按索引访问元素的场景&#xff0c;但是插入和删除元素较慢&#xff0c;时间复杂度是On链表:链表是由节点组成&#xff0c;节点之间是分散存储的&#xff0c;内存不连续&a…...

7.2 控件和组件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 C#工具箱位于编辑窗口的左侧&#xff0c;它默认内置了大量的控件和组件。控件一般派生于System.Windows.Forms.Control类&#xff0c;显…...

自动驾驶背后的数学:ReLU,Sigmoid, Leaky ReLU, PReLU,Swish等激活函数解析

随着自动驾驶技术的飞速发展&#xff0c;深度学习在其中扮演着至关重要的角色。而激活函数作为神经网络中的关键组件&#xff0c;直接影响着模型的性能和效果。前面几篇博客 自动驾驶背后的数学&#xff1a;特征提取中的线性变换与非线性激活 , 「自动驾驶背后的数学&#xff1…...

transform

http://zhihu.com/question/445556653/answer/3254012065 西科技的文章 视频讲解 小白也能听懂的 transformer模型原理详解 self- attention 多头注意力机制 encoder decoder 机器翻译_哔哩哔哩_bilibili...

在 Simulink 里构建输水隧洞充水过程模型的基本步骤与思路

下面为你介绍在 Simulink 里构建输水隧洞充水过程模型的基本步骤与思路&#xff0c;不过由于没办法直接生成 Simulink 模型文件&#xff0c;这里会给出一个模拟该过程的 Matlab 脚本代码示例。 建模思路 输水隧洞充水过程一般能够用一阶常微分方程来描述&#xff0c;其方程如…...

详解堆排序(超详细)

堆排序 一、 堆的基本概念二、 堆排序的主要步骤&#xff1a;1. 构建大顶堆&#xff08;Max-Heap&#xff09;2. 排序过程3. 堆化的详细过程4. 堆排序的完整步骤总结5. 堆排序的时间复杂度6. 堆排序的空间复杂度 三、 举例讲解示例数组第一步&#xff1a;构建大顶堆1.1 找到最后…...

思库拉水厂开业庆典千人大会回顾

近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...

react 大屏根据屏幕分辨率缩放

记录&#xff0c;以防忘记 const DataLargeScreen () > {const layoutRef useRef<any>();// ui稿宽度const width useRef(1920).current;// ui稿高度const height useRef(1080).current;const [scaleValue, setScaleValue] useState(1);const useWhichScaleValu…...

JAVA学习*Object类

Object类 Object类是所有类的父类 类中有一些方法&#xff08;都需要掌握&#xff09; toString()方法 在学习类的对象的时候有介绍过了&#xff0c;当我们重新给此方法就会打印类与对象的信息 equals()方法 在Java中的比较&#xff0c; 如果左右两侧是基本类型变量&#…...

基于python脚本实现的打砖块小游戏

目录 1. 打砖块游戏 2. 初始化 Pygame 和设置屏幕 3. 定义游戏对象 3.1 定义玩家操作的paddle 3.2 定义球&#xff08;Ball&#xff09; 3.3 砖块&#xff08;Bricks&#xff09; 4. 游戏主循环 4.1 事件处理 4.2 板子移动 4.3 球移动和碰撞检测 4.4 绘制游戏对象 …...

20250317-vue-Prop4

运行时类型检查 校验选项中的 type 可以是下列这些原生构造函数&#xff1a; StringNumberBooleanArrayObjectDateFunctionSymbolError 另外&#xff0c;type 也可以是自定义的类或构造函数&#xff0c;Vue 将会通过 instanceof 来检查类型是否匹配。例如下面这个类&#xf…...

地理信息系统(GIS)在智慧城市中的40个应用场景案例

在智慧城市发展进程中&#xff0c;地理信息系统&#xff08;GIS&#xff09;作为关键技术之一&#xff0c;正扮演着不可或缺的角色&#xff0c;堪称智慧城市的神经中枢。通过空间数据分析优化城市管理&#xff0c;GIS技术为智慧城市的构建提供了强大的支持。 本文分享了GIS在智…...

XSS Game(DOM型) 靶场 通关

目录 靶场网址 Ma Spaghet! 分析 解题 Jefff 分析 解题 方法一 方法二 Ugandan Knuckles 分析 解题 Ricardo Milos 分析 解题 Ah Thats Hawt 分析 解题 方法一 方法二 Ligma 分析 解题 ​ Mafia 分析 解题 方法一&#xff1a;构造函数 方法二&#xf…...