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

news2025/3/28 11:00:40

文章目录

  • ⭐前言
  • ⭐一、项目结构
  • ⭐二、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 format

const 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 period
    if (hours >= 12) {
        period = "PM";
    }

    //set 12 hour clock format
    var formatValue = formatSwitchBtn.getAttribute("date-format");

    if (formatValue === "12") {
        hours = hours > 12 ? hours % 12 : hours;
    }




    //add 0 for the value lower than 10
    if (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 js

var 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 toglle

const 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 创建一个简单而实用的网页应用。希望这个示例能为你的网页开发之旅提供灵感!

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

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

相关文章

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

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

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

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

类和对象-运算符重载-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 …

【Linux】线程基础

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

「宇树科技」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;显…

transform

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

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

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

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 绘制游戏对象 …

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

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