|
|
<!DOCTYPE html> |
|
|
<html lang="zh-CN"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>个人首页 - 科技感卡片风格</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
|
<style> |
|
|
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Poppins:wght@300;400;500;600&display=swap'); |
|
|
|
|
|
:root { |
|
|
--primary: #3a86ff; |
|
|
--secondary: #8338ec; |
|
|
--accent: #ff006e; |
|
|
--dark: #1a1a2e; |
|
|
--light: #f8f9fa; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: 'Poppins', sans-serif; |
|
|
background-color: #0f0f1a; |
|
|
color: var(--light); |
|
|
overflow-x: hidden; |
|
|
} |
|
|
|
|
|
.tech-font { |
|
|
font-family: 'Orbitron', sans-serif; |
|
|
} |
|
|
|
|
|
.card { |
|
|
background: rgba(26, 26, 46, 0.7); |
|
|
backdrop-filter: blur(10px); |
|
|
border-radius: 16px; |
|
|
border: 1px solid rgba(255, 255, 255, 0.1); |
|
|
transition: all 0.3s ease; |
|
|
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); |
|
|
} |
|
|
|
|
|
.card:hover { |
|
|
transform: translateY(-5px); |
|
|
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3); |
|
|
border-color: rgba(58, 134, 255, 0.3); |
|
|
} |
|
|
|
|
|
.glow { |
|
|
position: relative; |
|
|
} |
|
|
|
|
|
.glow::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: -2px; |
|
|
left: -2px; |
|
|
right: -2px; |
|
|
bottom: -2px; |
|
|
z-index: -1; |
|
|
background: linear-gradient(45deg, var(--primary), var(--secondary), var(--accent), var(--primary)); |
|
|
background-size: 400%; |
|
|
border-radius: 18px; |
|
|
opacity: 0; |
|
|
transition: 0.5s; |
|
|
animation: animate 20s linear infinite; |
|
|
} |
|
|
|
|
|
.glow:hover::before { |
|
|
opacity: 0.3; |
|
|
} |
|
|
|
|
|
@keyframes animate { |
|
|
0% { |
|
|
background-position: 0 0; |
|
|
} |
|
|
50% { |
|
|
background-position: 300% 0; |
|
|
} |
|
|
100% { |
|
|
background-position: 0 0; |
|
|
} |
|
|
} |
|
|
|
|
|
.gradient-text { |
|
|
background: linear-gradient(45deg, var(--primary), var(--secondary), var(--accent)); |
|
|
-webkit-background-clip: text; |
|
|
background-clip: text; |
|
|
color: transparent; |
|
|
background-size: 300% 300%; |
|
|
animation: gradient 8s ease infinite; |
|
|
} |
|
|
|
|
|
@keyframes gradient { |
|
|
0% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
50% { |
|
|
background-position: 100% 50%; |
|
|
} |
|
|
100% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
} |
|
|
|
|
|
.hexagon { |
|
|
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); |
|
|
} |
|
|
|
|
|
.skill-bar { |
|
|
height: 6px; |
|
|
background: rgba(255, 255, 255, 0.1); |
|
|
border-radius: 3px; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
.skill-progress { |
|
|
height: 100%; |
|
|
background: linear-gradient(90deg, var(--primary), var(--secondary)); |
|
|
border-radius: 3px; |
|
|
transition: width 1.5s ease; |
|
|
} |
|
|
|
|
|
.timeline-item { |
|
|
position: relative; |
|
|
padding-left: 30px; |
|
|
margin-bottom: 30px; |
|
|
} |
|
|
|
|
|
.timeline-item::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
left: 0; |
|
|
top: 5px; |
|
|
width: 15px; |
|
|
height: 15px; |
|
|
border-radius: 50%; |
|
|
background: var(--primary); |
|
|
box-shadow: 0 0 0 3px rgba(58, 134, 255, 0.3); |
|
|
} |
|
|
|
|
|
.timeline-item::after { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
left: 7px; |
|
|
top: 20px; |
|
|
width: 1px; |
|
|
height: calc(100% - 15px); |
|
|
background: rgba(255, 255, 255, 0.1); |
|
|
} |
|
|
|
|
|
.timeline-item:last-child::after { |
|
|
display: none; |
|
|
} |
|
|
|
|
|
.floating { |
|
|
animation: floating 3s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
@keyframes floating { |
|
|
0% { |
|
|
transform: translateY(0px); |
|
|
} |
|
|
50% { |
|
|
transform: translateY(-10px); |
|
|
} |
|
|
100% { |
|
|
transform: translateY(0px); |
|
|
} |
|
|
} |
|
|
|
|
|
.pulse { |
|
|
animation: pulse 2s infinite; |
|
|
} |
|
|
|
|
|
@keyframes pulse { |
|
|
0% { |
|
|
box-shadow: 0 0 0 0 rgba(58, 134, 255, 0.4); |
|
|
} |
|
|
70% { |
|
|
box-shadow: 0 0 0 10px rgba(58, 134, 255, 0); |
|
|
} |
|
|
100% { |
|
|
box-shadow: 0 0 0 0 rgba(58, 134, 255, 0); |
|
|
} |
|
|
} |
|
|
|
|
|
.grid-bg { |
|
|
background-image: |
|
|
linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px), |
|
|
linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px); |
|
|
background-size: 30px 30px; |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="grid-bg min-h-screen"> |
|
|
|
|
|
<div id="loader" class="fixed inset-0 bg-dark z-50 flex items-center justify-center transition-opacity duration-500"> |
|
|
<div class="text-center"> |
|
|
<div class="hexagon w-20 h-20 mx-auto bg-gradient-to-r from-primary to-secondary flex items-center justify-center mb-4"> |
|
|
<i class="fas fa-code text-3xl text-white"></i> |
|
|
</div> |
|
|
<h2 class="tech-font text-2xl gradient-text">LOADING PORTFOLIO</h2> |
|
|
<div class="w-48 h-1 bg-gray-700 rounded-full mx-auto mt-4 overflow-hidden"> |
|
|
<div id="progress-bar" class="h-full bg-gradient-to-r from-primary to-secondary" style="width: 0%"></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="container mx-auto px-4 py-12 opacity-0" id="main-content"> |
|
|
|
|
|
<header class="flex flex-col md:flex-row items-center justify-between mb-16"> |
|
|
<div class="flex items-center mb-6 md:mb-0"> |
|
|
<div class="hexagon w-16 h-16 bg-gradient-to-r from-primary to-secondary flex items-center justify-center mr-4"> |
|
|
<i class="fas fa-code text-xl text-white"></i> |
|
|
</div> |
|
|
<h1 class="tech-font text-3xl gradient-text">TECH<span class="text-white">FOLIO</span></h1> |
|
|
</div> |
|
|
|
|
|
<nav class="flex space-x-1"> |
|
|
<a href="#about" class="px-4 py-2 rounded-full hover:bg-gray-800 transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-user mr-2 text-sm"></i> |
|
|
<span>关于</span> |
|
|
</a> |
|
|
<a href="#skills" class="px-4 py-2 rounded-full hover:bg-gray-800 transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-cog mr-2 text-sm"></i> |
|
|
<span>技能</span> |
|
|
</a> |
|
|
<a href="#projects" class="px-4 py-2 rounded-full hover:bg-gray-800 transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-project-diagram mr-2 text-sm"></i> |
|
|
<span>项目</span> |
|
|
</a> |
|
|
<a href="#contact" class="px-4 py-2 rounded-full hover:bg-gray-800 transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-envelope mr-2 text-sm"></i> |
|
|
<span>联系</span> |
|
|
</a> |
|
|
</nav> |
|
|
</header> |
|
|
|
|
|
|
|
|
<section class="flex flex-col md:flex-row items-center justify-between mb-24"> |
|
|
<div class="md:w-1/2 mb-12 md:mb-0"> |
|
|
<h2 class="text-4xl md:text-5xl font-bold mb-4 tech-font"> |
|
|
<span class="gradient-text">你好, 我是</span> |
|
|
<span class="block text-white">张科技</span> |
|
|
</h2> |
|
|
<h3 class="text-xl md:text-2xl text-gray-400 mb-6">全栈开发工程师 & UI/UX设计师</h3> |
|
|
<p class="text-gray-400 mb-8 leading-relaxed"> |
|
|
我专注于创造美观、高效且用户友好的数字体验。拥有5年以上的开发经验,擅长将复杂的技术转化为直观的解决方案。 |
|
|
</p> |
|
|
<div class="flex space-x-4"> |
|
|
<a href="#contact" class="px-6 py-3 bg-gradient-to-r from-primary to-secondary rounded-full text-white font-medium hover:shadow-lg transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-paper-plane mr-2"></i> |
|
|
<span>联系我</span> |
|
|
</a> |
|
|
<a href="#projects" class="px-6 py-3 border border-gray-700 rounded-full text-white font-medium hover:bg-gray-800 transition-all duration-300 flex items-center"> |
|
|
<i class="fas fa-eye mr-2"></i> |
|
|
<span>查看作品</span> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="md:w-1/2 flex justify-center relative"> |
|
|
<div class="relative"> |
|
|
<div class="w-64 h-64 md:w-80 md:h-80 bg-gradient-to-br from-primary to-secondary rounded-full flex items-center justify-center overflow-hidden"> |
|
|
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80" |
|
|
alt="Profile" |
|
|
class="w-full h-full object-cover"> |
|
|
</div> |
|
|
<div class="absolute -bottom-5 -right-5 bg-dark p-4 rounded-lg shadow-lg card"> |
|
|
<div class="flex items-center"> |
|
|
<div class="w-10 h-10 bg-primary rounded-full flex items-center justify-center text-white mr-3"> |
|
|
<i class="fas fa-trophy"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="text-xs text-gray-400">获奖项目</p> |
|
|
<p class="text-sm font-medium">年度最佳应用</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="absolute -top-5 -left-5 bg-dark p-4 rounded-lg shadow-lg card"> |
|
|
<div class="flex items-center"> |
|
|
<div class="w-10 h-10 bg-secondary rounded-full flex items-center justify-center text-white mr-3"> |
|
|
<i class="fas fa-code-branch"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="text-xs text-gray-400">项目完成</p> |
|
|
<p class="text-sm font-medium">50+</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section id="about" class="mb-24"> |
|
|
<div class="flex items-center mb-12"> |
|
|
<h2 class="text-3xl font-bold tech-font gradient-text mr-4">关于我</h2> |
|
|
<div class="flex-1 h-px bg-gradient-to-r from-primary to-transparent"></div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> |
|
|
<div class="card glow p-8"> |
|
|
<div class="w-16 h-16 bg-primary bg-opacity-20 rounded-lg flex items-center justify-center text-primary text-2xl mb-6"> |
|
|
<i class="fas fa-lightbulb"></i> |
|
|
</div> |
|
|
<h3 class="text-xl font-bold mb-3">创新思维</h3> |
|
|
<p class="text-gray-400"> |
|
|
我热衷于探索新技术和创意解决方案,能够将复杂问题分解为可管理的部分,并找到创新的解决途径。 |
|
|
</p> |
|
|
</div> |
|
|
|
|
|
<div class="card glow p-8"> |
|
|
<div class="w-16 h-16 bg-secondary bg-opacity-20 rounded-lg flex items-center justify-center text-secondary text-2xl mb-6"> |
|
|
<i class="fas fa-users"></i> |
|
|
</div> |
|
|
<h3 class="text-xl font-bold mb-3">团队协作</h3> |
|
|
<p class="text-gray-400"> |
|
|
作为团队的一员,我重视沟通与协作,能够与设计师、产品经理和其他开发者有效合作,共同实现项目目标。 |
|
|
</p> |
|
|
</div> |
|
|
|
|
|
<div class="card glow p-8"> |
|
|
<div class="w-16 h-16 bg-accent bg-opacity-20 rounded-lg flex items-center justify-center text-accent text-2xl mb-6"> |
|
|
<i class="fas fa-rocket"></i> |
|
|
</div> |
|
|
<h3 class="text-xl font-bold mb-3">快速学习</h3> |
|
|
<p class="text-gray-400"> |
|
|
技术领域日新月异,我始终保持学习的态度,能够快速掌握新技术并将其应用到实际项目中。 |
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section id="skills" class="mb-24"> |
|
|
<div class="flex items-center mb-12"> |
|
|
<h2 class="text-3xl font-bold tech-font gradient-text mr-4">我的技能</h2> |
|
|
<div class="flex-1 h-px bg-gradient-to-r from-primary to-transparent"></div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-8"> |
|
|
<div class="card p-8"> |
|
|
<h3 class="text-xl font-bold mb-6 flex items-center"> |
|
|
<i class="fas fa-laptop-code mr-3 text-primary"></i> |
|
|
<span>技术技能</span> |
|
|
</h3> |
|
|
|
|
|
<div class="space-y-6"> |
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">HTML/CSS</span> |
|
|
<span class="text-primary">95%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 95%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">JavaScript</span> |
|
|
<span class="text-primary">90%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 90%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">React</span> |
|
|
<span class="text-primary">85%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 85%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">Node.js</span> |
|
|
<span class="text-primary">80%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 80%"></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card p-8"> |
|
|
<h3 class="text-xl font-bold mb-6 flex items-center"> |
|
|
<i class="fas fa-paint-brush mr-3 text-secondary"></i> |
|
|
<span>设计技能</span> |
|
|
</h3> |
|
|
|
|
|
<div class="space-y-6"> |
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">UI/UX设计</span> |
|
|
<span class="text-secondary">90%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 90%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">Figma</span> |
|
|
<span class="text-secondary">85%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 85%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">Adobe XD</span> |
|
|
<span class="text-secondary">80%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 80%"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<div class="flex justify-between mb-2"> |
|
|
<span class="text-gray-300">Photoshop</span> |
|
|
<span class="text-secondary">75%</span> |
|
|
</div> |
|
|
<div class="skill-bar"> |
|
|
<div class="skill-progress" style="width: 75%"></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section id="projects" class="mb-24"> |
|
|
<div class="flex items-center mb-12"> |
|
|
<h2 class="text-3xl font-bold tech-font gradient-text mr-4">精选项目</h2> |
|
|
<div class="flex-1 h-px bg-gradient-to-r from-primary to-transparent"></div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> |
|
|
|
|
|
<div class="card glow overflow-hidden group"> |
|
|
<div class="relative overflow-hidden h-48"> |
|
|
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" |
|
|
alt="Project 1" |
|
|
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110"> |
|
|
<div class="absolute inset-0 bg-gradient-to-t from-dark to-transparent opacity-80"></div> |
|
|
<div class="absolute bottom-4 left-4"> |
|
|
<span class="bg-primary text-white text-xs px-2 py-1 rounded">Web应用</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<h3 class="text-xl font-bold mb-2">数据分析平台</h3> |
|
|
<p class="text-gray-400 mb-4">一个强大的数据可视化和分析工具,帮助企业做出数据驱动的决策。</p> |
|
|
<div class="flex flex-wrap gap-2 mb-4"> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">React</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">D3.js</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Node.js</span> |
|
|
</div> |
|
|
<a href="#" class="text-primary text-sm font-medium flex items-center hover:text-secondary transition-colors"> |
|
|
<span>查看详情</span> |
|
|
<i class="fas fa-arrow-right ml-2"></i> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="card glow overflow-hidden group"> |
|
|
<div class="relative overflow-hidden h-48"> |
|
|
<img src="https://images.unsplash.com/photo-1467232004584-a241de8b3885?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80" |
|
|
alt="Project 2" |
|
|
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110"> |
|
|
<div class="absolute inset-0 bg-gradient-to-t from-dark to-transparent opacity-80"></div> |
|
|
<div class="absolute bottom-4 left-4"> |
|
|
<span class="bg-secondary text-white text-xs px-2 py-1 rounded">移动应用</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<h3 class="text-xl font-bold mb-2">健康追踪应用</h3> |
|
|
<p class="text-gray-400 mb-4">一款全面的健康管理应用,帮助用户追踪运动、饮食和睡眠数据。</p> |
|
|
<div class="flex flex-wrap gap-2 mb-4"> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Flutter</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Firebase</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">HealthKit</span> |
|
|
</div> |
|
|
<a href="#" class="text-primary text-sm font-medium flex items-center hover:text-secondary transition-colors"> |
|
|
<span>查看详情</span> |
|
|
<i class="fas fa-arrow-right ml-2"></i> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="card glow overflow-hidden group"> |
|
|
<div class="relative overflow-hidden h-48"> |
|
|
<img src="https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" |
|
|
alt="Project 3" |
|
|
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110"> |
|
|
<div class="absolute inset-0 bg-gradient-to-t from-dark to-transparent opacity-80"></div> |
|
|
<div class="absolute bottom-4 left-4"> |
|
|
<span class="bg-accent text-white text-xs px-2 py-1 rounded">电商平台</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="p-6"> |
|
|
<h3 class="text-xl font-bold mb-2">时尚电商平台</h3> |
|
|
<p class="text-gray-400 mb-4">一个现代化的电子商务平台,提供个性化的购物体验和推荐系统。</p> |
|
|
<div class="flex flex-wrap gap-2 mb-4"> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Vue.js</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Laravel</span> |
|
|
<span class="text-xs bg-gray-800 text-gray-300 px-2 py-1 rounded">Stripe</span> |
|
|
</div> |
|
|
<a href="#" class="text-primary text-sm font-medium flex items-center hover:text-secondary transition-colors"> |
|
|
<span>查看详情</span> |
|
|
<i class="fas fa-arrow-right ml-2"></i> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="text-center mt-12"> |
|
|
<a href="#" class="inline-flex items-center px-6 py-3 border border-gray-700 rounded-full text-white font-medium hover:bg-gray-800 transition-all duration-300"> |
|
|
<i class="fas fa-folder-open mr-2"></i> |
|
|
<span>查看所有项目</span> |
|
|
</a> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section id="contact" class="mb-24"> |
|
|
<div class="flex items-center mb-12"> |
|
|
<h2 class="text-3xl font-bold tech-font gradient-text mr-4">联系我</h2> |
|
|
<div class="flex-1 h-px bg-gradient-to-r from-primary to-transparent"></div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-8"> |
|
|
<div class="card p-8"> |
|
|
<h3 class="text-xl font-bold mb-6">联系方式</h3> |
|
|
|
|
|
<div class="space-y-6"> |
|
|
<div class="flex items-start"> |
|
|
<div class="w-10 h-10 bg-primary bg-opacity-20 rounded-full flex items-center justify-center text-primary mr-4 mt-1"> |
|
|
<i class="fas fa-envelope"></i> |
|
|
</div> |
|
|
<div> |
|
|
<h4 class="text-gray-400 mb-1">电子邮件</h4> |
|
|
<a href="mailto:zhangkeji@example.com" class="text-white hover:text-primary transition-colors">zhangkeji@example.com</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-start"> |
|
|
<div class="w-10 h-10 bg-secondary bg-opacity-20 rounded-full flex items-center justify-center text-secondary mr-4 mt-1"> |
|
|
<i class="fas fa-phone-alt"></i> |
|
|
</div> |
|
|
<div> |
|
|
<h4 class="text-gray-400 mb-1">电话</h4> |
|
|
<a href="tel:+8613812345678" class="text-white hover:text-secondary transition-colors">+86 138 1234 5678</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-start"> |
|
|
<div class="w-10 h-10 bg-accent bg-opacity-20 rounded-full flex items-center justify-center text-accent mr-4 mt-1"> |
|
|
<i class="fas fa-map-marker-alt"></i> |
|
|
</div> |
|
|
<div> |
|
|
<h4 class="text-gray-400 mb-1">地址</h4> |
|
|
<p class="text-white">中国北京市海淀区科技园区88号</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-8 pt-6 border-t border-gray-800"> |
|
|
<h4 class="text-gray-400 mb-4">社交媒体</h4> |
|
|
<div class="flex space-x-4"> |
|
|
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center text-white hover:bg-primary transition-all"> |
|
|
<i class="fab fa-github"></i> |
|
|
</a> |
|
|
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center text-white hover:bg-blue-500 transition-all"> |
|
|
<i class="fab fa-linkedin-in"></i> |
|
|
</a> |
|
|
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center text-white hover:bg-blue-400 transition-all"> |
|
|
<i class="fab fa-twitter"></i> |
|
|
</a> |
|
|
<a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center text-white hover:bg-pink-500 transition-all"> |
|
|
<i class="fab fa-dribbble"></i> |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card p-8"> |
|
|
<h3 class="text-xl font-bold mb-6">发送消息</h3> |
|
|
|
|
|
<form> |
|
|
<div class="mb-6"> |
|
|
<label for="name" class="block text-gray-400 mb-2">姓名</label> |
|
|
<input type="text" id="name" class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="请输入您的姓名"> |
|
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
|
<label for="email" class="block text-gray-400 mb-2">电子邮件</label> |
|
|
<input type="email" id="email" class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="请输入您的电子邮件"> |
|
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
|
<label for="message" class="block text-gray-400 mb-2">消息</label> |
|
|
<textarea id="message" rows="4" class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent transition-all" placeholder="请输入您的消息"></textarea> |
|
|
</div> |
|
|
|
|
|
<button type="submit" class="w-full bg-gradient-to-r from-primary to-secondary text-white font-medium py-3 px-6 rounded-lg hover:shadow-lg transition-all duration-300 flex items-center justify-center"> |
|
|
<i class="fas fa-paper-plane mr-2"></i> |
|
|
<span>发送消息</span> |
|
|
</button> |
|
|
</form> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<footer class="border-t border-gray-800 pt-12 pb-8"> |
|
|
<div class="flex flex-col md:flex-row items-center justify-between mb-8"> |
|
|
<div class="flex items-center mb-6 md:mb-0"> |
|
|
<div class="hexagon w-12 h-12 bg-gradient-to-r from-primary to-secondary flex items-center justify-center mr-4"> |
|
|
<i class="fas fa-code text-white"></i> |
|
|
</div> |
|
|
<h2 class="tech-font text-2xl gradient-text">TECH<span class="text-white">FOLIO</span></h2> |
|
|
</div> |
|
|
|
|
|
<div class="flex space-x-6"> |
|
|
<a href="#" class="text-gray-400 hover:text-primary transition-colors">首页</a> |
|
|
<a href="#about" class="text-gray-400 hover:text-primary transition-colors">关于</a> |
|
|
<a href="#skills" class="text-gray-400 hover:text-primary transition-colors">技能</a> |
|
|
<a href="#projects" class="text-gray-400 hover:text-primary transition-colors">项目</a> |
|
|
<a href="#contact" class="text-gray-400 hover:text-primary transition-colors">联系</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="text-center text-gray-500 text-sm"> |
|
|
<p>© 2023 张科技个人主页. 保留所有权利.</p> |
|
|
</div> |
|
|
</footer> |
|
|
</div> |
|
|
|
|
|
|
|
|
<button id="back-to-top" class="fixed bottom-8 right-8 w-12 h-12 bg-gray-800 rounded-full flex items-center justify-center text-white shadow-lg hover:bg-primary transition-all duration-300 opacity-0 invisible"> |
|
|
<i class="fas fa-arrow-up"></i> |
|
|
</button> |
|
|
|
|
|
<script> |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
let progress = 0; |
|
|
const progressBar = document.getElementById('progress-bar'); |
|
|
const loader = document.getElementById('loader'); |
|
|
const mainContent = document.getElementById('main-content'); |
|
|
|
|
|
const interval = setInterval(() => { |
|
|
progress += 1; |
|
|
progressBar.style.width = progress + '%'; |
|
|
|
|
|
if (progress >= 100) { |
|
|
clearInterval(interval); |
|
|
setTimeout(() => { |
|
|
loader.style.opacity = '0'; |
|
|
setTimeout(() => { |
|
|
loader.style.display = 'none'; |
|
|
mainContent.style.opacity = '1'; |
|
|
}, 500); |
|
|
}, 300); |
|
|
} |
|
|
}, 30); |
|
|
|
|
|
|
|
|
const backToTopButton = document.getElementById('back-to-top'); |
|
|
|
|
|
window.addEventListener('scroll', function() { |
|
|
if (window.pageYOffset > 300) { |
|
|
backToTopButton.style.opacity = '1'; |
|
|
backToTopButton.style.visibility = 'visible'; |
|
|
} else { |
|
|
backToTopButton.style.opacity = '0'; |
|
|
backToTopButton.style.visibility = 'hidden'; |
|
|
} |
|
|
}); |
|
|
|
|
|
backToTopButton.addEventListener('click', function() { |
|
|
window.scrollTo({ |
|
|
top: 0, |
|
|
behavior: 'smooth' |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => { |
|
|
anchor.addEventListener('click', function(e) { |
|
|
e.preventDefault(); |
|
|
|
|
|
const targetId = this.getAttribute('href'); |
|
|
if (targetId === '#') return; |
|
|
|
|
|
const targetElement = document.querySelector(targetId); |
|
|
if (targetElement) { |
|
|
window.scrollTo({ |
|
|
top: targetElement.offsetTop - 80, |
|
|
behavior: 'smooth' |
|
|
}); |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
const skillSections = document.querySelectorAll('.skill-progress'); |
|
|
|
|
|
const observer = new IntersectionObserver((entries) => { |
|
|
entries.forEach(entry => { |
|
|
if (entry.isIntersecting) { |
|
|
const width = entry.target.style.width; |
|
|
entry.target.style.width = '0%'; |
|
|
setTimeout(() => { |
|
|
entry.target.style.width = width; |
|
|
}, 100); |
|
|
} |
|
|
}); |
|
|
}, { threshold: 0.1 }); |
|
|
|
|
|
skillSections.forEach(skill => { |
|
|
observer.observe(skill); |
|
|
}); |
|
|
}); |
|
|
</script> |
|
|
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=ixingchen/home" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
|
</html> |