HTML制作一个超迷人的科技之眼

大家好,今天制作一个科技之眼!

先看具体效果:
在这里插入图片描述
要制作一个超迷人的“科技之眼”网页效果,你可以结合HTML、CSS和JavaScript来实现。下面是一个简单的步骤指南和示例代码,帮助你开始这个项目。

1. 设计概念

首先,你需要有一个清晰的设计概念。一个“科技之眼”可能包含的元素有:

  • 一个圆形的背景或边框。
  • 一个类似眼睛的中心部分,可以是瞳孔或发光的球体。
  • 动态的效果,如光晕、脉冲、闪烁等。
  • 可能的交互功能,如点击或滚动时改变效果。

2. HTML结构

使用HTML创建网页的基本结构。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <title>科技之眼</title>
</head>
<body>
   <button id="changeColorBtn" onclick="changeColor()">改变颜色</button>  
    <div class="tech-eye">  
        <div class="eyeball">  
            <div class="iris"></div>  
            <div class="pupil"></div>  
            <div class="scan-lines"></div>  
        </div>  
        <div class="glow"></div>  
    </div>  
    <script src="script.js"></script>
</body>
</html>

3. CSS样式

使用CSS为元素添加样式和动画效果。

/* styles.css */
/* styles.css */  
body {  
    display: flex;  
    justify-content: center;  
    align-items: center;  
    height: 100vh;  
    margin: 0;  
    background-color: #111;  
    overflow: hidden;  
}  
  
.tech-eye {  
    position: relative;  
    width: 300px;  
    height: 300px;  
    border-radius: 50%;  
    overflow: hidden;  
}  
  
.eyeball {  
    position: absolute;  
    top: 50%;  
    left: 50%;  
    transform: translate(-50%, -50%);  
    width: 200px;  
    height: 200px;  
    border-radius: 50%;  
    background-color: #333;  
}  
  
.iris {  
    position: absolute;  
    top: 50%;  
    left: 50%;  
    transform: translate(-50%, -50%);  
    width: 180px;  
    height: 180px;  
    border-radius: 50%;  
    background-color: #fff;  
    box-shadow: 0 0 30px rgba(255, 255, 255, 0.5);  
}  
  
.pupil {  
    position: absolute;  
    top: 50%;  
    left: 50%;  
    transform: translate(-50%, -50%);  
    width: 80px;  
    height: 80px;  
    border-radius: 50%;  
    background-color: #000;  
}  
  
.scan-lines {  
    position: absolute;  
    top: 0;  
    left: 0;  
    width: 100%;  
    height: 100%;  
    border-radius: 50%;  
    pointer-events: none;  
    animation: scan 2s linear infinite;  
}  
  
.scan-lines::before,  
.scan-lines::after {  
    content: "";  
    position: absolute;  
    width: 2px;  
    height: 100%;  
    background-color: rgba(255, 255, 255, 0.5);  
    animation: blink 1s linear infinite;  
}  
  
.scan-lines::before {  
    left: 45%;  
}  
  
.scan-lines::after {  
    right: 45%;  
}  
  
.glow {  
    position: absolute;  
    top: 0;  
    left: 0;  
    width: 100%;  
    height: 100%;  
    border-radius: 50%;  
    background-color: rgba(255, 255, 255, 0.3);  
    animation: pulse 2s infinite;  
}  
  
@keyframes scan {  
    0% { transform: rotate(0deg); }  
    100% { transform: rotate(360deg); }  
}  
  
@keyframes blink {  
    0%, 50% { opacity: 1; }  
    25%, 75% { opacity: 0; }  
}  

  
/* 添加光晕效果动画 */  
.glow {  
    animation: pulse 2s infinite, glowRotate 10s linear infinite;  
}  
  
@keyframes glowRotate {  
    0% { transform: scale(1) rotate(0deg); }  
    50% { transform: scale(1.1) rotate(180deg); }  
    100% { transform: scale(1) rotate(360deg); }  
}  
  
/* 添加扫描线的详细动画 */  
.scan-lines::before,  
.scan-lines::after {  
    animation: blink 1s linear infinite, scanLineMove 2s linear infinite;  
}  
  
@keyframes scanLineMove {  
    0% { top: 100%; }  
    50% { top: -100%; }  
    100% { top: 100%; }  
}  
  
/* 添加瞳孔的缩放动画 */  
.pupil {  
    animation: pupilScale 2s ease-in-out infinite;  
}  
  
@keyframes pupilScale {  
    0%, 100% { transform: scale(1); }  
    50% { transform: scale(0.8); }  
}  
  
/* 添加颜色渐变效果 */  
.iris {  
    background: linear-gradient(to right, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #800080);  
    background-size: 300% 100%;  
    animation: colorShift 5s linear infinite;  
}  
  
@keyframes colorShift {  
    0% { background-position: 100% 50%; }  
    50% { background-position: 0% 50%; }  
    100% { background-position: 100% 50%; }  
}

/* 按钮样式 */  
#changeColorBtn {  
	display: inline-block;  
	padding: 10px 20px;  
	font-size: 16px;  
	color: white;  
	background-color: #007BFF;  
	border: none;  
	border-radius: 4px;  
	cursor: pointer;  
	transition: background-color 0.3s ease;  
}  

#changeColorBtn:hover {  
	background-color: #0056b3;  
}  
	
	

4. JavaScript交互

使用JavaScript为网页添加交互功能。例如,你可以添加一个点击事件来改变“科技之眼”的颜色或动画效果。

// script.js
	function changeColor() {  
        var colors = ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff'];  
        var randomColor = colors[Math.floor(Math.random() * colors.length)];  
        document.querySelector('.iris').style.background = `linear-gradient(to right, ${randomColor}, ${randomColor})`;  
    }  
  
    document.addEventListener('DOMContentLoaded', function() {  
        // 假设有鼠标悬停效果,当鼠标悬停在“科技之眼”上时,瞳孔放大  
        var techEye = document.querySelector('.tech-eye');  
        techEye.addEventListener('mouseenter', function() {  
            this.querySelector('.pupil').style.animation = 'none';  
            this.querySelector('.pupil').style.transform = 'scale(1.2)';  
        });  
  
        techEye.addEventListener('mouseleave', function() {  
            this.querySelector('.pupil').style.animation = 'pupilScale 2s ease-in-out infinite';  
            this.querySelector('.pupil').style.transform = 'scale(1)';  
        });  
    });  

5. 进一步优化和定制

  • 你可以使用SVG或Canvas来创建更复杂的图形和动画。
  • 使用CSS3的更多特性,如box-shadowfiltertransform等,来增强视觉效果。
  • 添加更多的交互功能,如鼠标悬停、滚动、键盘输入等。
  • 使用JavaScript库(如GSAP、anime.js等)来简化动画的创建和管理。
  • 响应式设计,确保网页在不同设备和屏幕尺寸上都能良好地显示和工作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 搭建 lnmp

一.编译安装Nginx 1.新建用户前期准备 官网下载nginx安装包 https://nginx.org/en/download.html yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel #安装依赖包 useradd -M -s /sbin/nologin nginx #新建nginx用户便于管理 2.切换到/opt…

大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程

最新大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程 测试环境&#xff1a;apachePHP7.3MySQL5.7 源码免费下载地址抄笔记 (chaobiji.cn)

家里满是“飞尘、毛絮”怎么办?用空气净化器,干净又卫生!

随着气温的升高&#xff0c;家中的毛絮和飞尘问题愈发严重&#xff0c;这些细小的颗粒常常聚集在房间的角落&#xff0c;即使每日清洁&#xff0c;似乎也难以彻底清除&#xff0c;反而可能使情况恶化。特别是对于养宠物的家庭来说&#xff0c;毛絮问题尤为突出&#xff0c;即使…

一键安全体检!亚信安全携手鼎捷软件推出企业安全体检活动 正式上线

亚信安全联合鼎捷软件股份有限公司&#xff08;以下简称“鼎捷软件”&#xff09;正式推出“一键安全体检”服务。亚信安全网络安全专家将携手鼎捷软件数据安全专家&#xff0c;围绕企业的数智安全状况&#xff0c;进行问题探索与治愈、新问题预测与预警&#xff0c;在全面筛查…

MPT(merkle Patricia trie )及理解solidity里的storage

what&#xff1f; MPT树是一种数据结构&#xff0c;用于在以太坊区块链中高效地存储和检索账户状态、交易历史和其他重要数据。MPT树的设计旨在结合Merkle树和Patricia树的优点&#xff0c;以提供高效的数据存储和验证 MPT树由四种类型的节点组成&#xff1a; **扩展节点&…

Redis的缓存击穿、缓存穿透和缓存雪崩是什么?怎么预防?

Redis的缓存击穿、缓存穿透和缓存雪崩是什么&#xff1f;怎么预防&#xff1f; 前言缓存击穿定义解决思路实现加锁设置过期时间Lua脚本刷新锁 缓存穿透定义实现 缓存雪崩定义解决思路 总结 前言 最近在CSDN上看到了一篇博客&#xff0c;Redis缓存击穿、雪崩、穿透&#xff01;…

04 DNS域名解析服务

1、DNS系统的作用及类型 在整个互联网大家庭中&#xff0c;大部分的网站、邮件等服务器都使用了域名形式的地址&#xff0c;如www.baidu.com、mail.163.com等。很显然这种地址形式要比使用61.233.189.147、202.108.33.74的IP地址形式更加直观&#xff0c;且更容易被用户记住。…

UE4中性能优化工具合集

UE4中性能优化工具合集 简述CPUUnreal InsightUnreal ProfilerSimpleperfAndroid StudioPerfettoXCode TimeprofilerBest Practice GPUAdreno GPUMali GPUAndroid GPU Inspector (AGI) 内存堆内存分析Android StudioLoliProfilerUE5 Memory InsightsUnity Mono 内存MemreportRH…

父亲节献礼,让爱从脚下升起!一双舒适劳保鞋,守护他的每一步

时光荏苒&#xff0c;转眼间我们又迎来了一个温馨的节日——父亲节。在这个特别的日子里&#xff0c;你是否已经为父亲精心挑选了一份特别的礼物呢&#xff1f;如果没有&#xff0c;那么今天就来给大家推荐一款既实用又贴心的父亲节礼物——一双舒适耐用的劳保鞋。它不仅能守护…

长亭Nginx入门

在学习Nginx时我们先学习下防火墙原理】 将流量代理给防火墙 这样WAF 会分析流量 防火墙安装网络拓扑图 流量给防火墙 再给负载均衡 反向代理这个网络拓扑图是 防火墙充当了反向代理角色 所以我们就知道了我们为了要学习Nginx 因为这个服务器支持很多功能模块 自己本身就能…

IO高级 -- 文件操作(Path、Paths、Files)

一、基础&#xff1a;File 1.1 构造方法&#xff1a; 1、 public File(String pathname) &#xff1a;通过给定的路径来创建新的 File实例。2、 public File(String parent, String child) &#xff1a;从父路径(字符串)和子路径创建新的 File实例。3、 public File(File pare…

【Windows10】查看WIFI密码

操作步骤 电脑上查看已连接Wi-Fi的密码的步骤如下: 连接需要查看密码的Wi-Fi。右键点击任务栏上的 [网络] 图标&#xff0c;选择 [开启"网络和Internet"设置]。在 高级网络设置 项目中&#xff0c;点选 [网络和共享中心]。开启网络和共享中心的窗口后&#xff0c;点…

vue+showdown展示Markdown 文本

前言&#xff1a; vueshowdown展示Markdown 文本&#xff0c;资料整理 使用教程-vditor&#xff1a; 1、安装 npm install vditor --save 2、使用 <template><div id"vditor" name"description" ></div> </template> <scri…

探索高效存储与快速查找: 深入了解B树数据结构

探索高效存储与快速查找: 深入了解B树数据结构 一、什么是B树二、B树的实现2.1 节点的定义2.2 插入关键字2.3 删除关键字2.4 查找关键字2.5 遍历B树 一、什么是B树 B树&#xff0c;也称为B-tree&#xff0c;是一种多路平衡查找树。它被广泛用于文件系统和数据库之中&#xff0c…

2024年6月-Docker配置镜像代理

步骤1&#xff1a;编辑 daemon.json 文件 vim /etc/docker/daemon.json步骤2&#xff1a;添加配置 将以下内容粘贴到文件中&#xff1a; {"insecure-registries": ["192.168.0.99:8800"],"data-root": "/mnt/docker","registr…

区间分割求解方程

本文实现了基于mpi4py的多进程算法 mpi不过多介绍&#xff0c;某些函数的用法也不是介绍范围&#xff0c;这里只给出怎么实现多进程的方程求根算法。区间划分求解方程&#xff0c;在串行程序里&#xff0c;二分法是非常经典的算法&#xff0c;现在对其进行拓展&#xff0c;实现…

YUV格式与RGB格式详解

图像处理 文章目录 图像处理前言YUV 格式YUV 采样 前言 像素格式描述了像素数据存储所用的格式&#xff0c;定义了像素在内存中的编码方式。RGB 和 YUV 为两种经常使用的像素格式。/ 1024 / 1024 2.63 MB 存储空间。 RGB 和 RGBA 格式 RGB 图像具有三个通道 R、G、B&#xff…

进程状态及其转换

0号进程(idle):在linux系统启动的时候最先运行的进程就是0号进程&#xff0c;0号进程又叫空闲进程。如果系统上没有其他进程执行那么0号进程就执行。0号进程是1号进程和2号进程的父进程 1号进程(init):init进程是由0号进程创建得到的&#xff0c;它的主要工作是系统的初始化。…

《C++ Primer》导学系列:第 1 章 - 开始

1.1 编写一个简单的C程序 概述 本小节介绍了如何编写和运行一个简单的C程序&#xff0c;帮助初学者了解C程序的基本结构和编译运行过程。 编写第一个C程序 我们从一个简单的C程序开始&#xff0c;它的功能是在控制台输出 "Hello, World!"。这是学习任何编程语言的…

【CGAL】圆柱体检测结果后处理

文章目录 文章说明算法思路代码展示结果展示 文章说明 这篇文章主要介绍&#xff0c;对使用CGAL中的 Region Growing 算法爬取圆柱体的结果进行后处理&#xff0c;以获取位置、轴向量、半径都较为合理的单个圆柱体。 在之前的一篇文章中&#xff0c;使用了open3D生成的标准圆…