maomaobj's picture
缺少箭头,需要补上
ef32c10 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Medical Evolution Timeline</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
overflow: hidden;
}
.timeline-container {
background: linear-gradient(145deg, #ffffff 0%, #f1f5f9 100%);
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
border-radius: 24px;
position: relative;
overflow: hidden;
}
.stage-card {
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.stage-card:hover {
transform: translateY(-8px);
}
.stage-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: currentColor;
opacity: 0.8;
}
.icon-container {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
border: 2px solid rgba(255, 255, 255, 0.3);
}
.arrow {
position: relative;
color: #64748b;
}
.arrow::before {
content: '';
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 2px;
background: currentColor;
transform: translateY(-50%);
}
.arrow::after {
content: '';
position: absolute;
top: 50%;
right: 0;
width: 12px;
height: 12px;
border-right: 2px solid currentColor;
border-top: 2px solid currentColor;
transform: translateY(-50%) rotate(45deg);
}
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.floating {
animation: float 6s ease-in-out infinite;
}
.pulse-glow {
animation: pulse-glow 2s ease-in-out infinite alternate;
}
@keyframes pulse-glow {
from { box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); }
to { box-shadow: 0 0 30px rgba(59, 130, 246, 0.8); }
}
</style>
</head>
<body class="min-h-screen flex items-center justify-center p-8">
<div class="timeline-container w-full max-w-6xl aspect-video p-12">
<!-- Header -->
<div class="text-center mb-16">
<h1 class="text-4xl font-bold text-gray-800 mb-4">医学发展的三个阶段</h1>
<p class="text-lg text-gray-600">The Three Stages of Medical Evolution</p>
</div>
<!-- Timeline -->
<div class="flex items-center justify-between relative">
<!-- Stage 1: Experience Medicine -->
<div class="stage-card flex-1 text-center mx-4" style="color: #f59e0b;">
<div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating">
<div class="relative">
<i data-feather="users" class="w-12 h-12" style="color: #f59e0b;"></i>
<i data-feather="book-open" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #d97706;"></i>
</div>
</div>
<h3 class="text-2xl font-semibold mb-4" style="color: #f59e0b;">经验医学</h3>
<p class="text-gray-600 text-lg leading-relaxed">以经验为主,依赖医生直觉</p>
<div class="mt-6 text-sm text-gray-500">
<p>传统智慧 · 临床经验 · 师徒传承</p>
</div>
</div>
<!-- Arrow 1 -->
<div class="arrow flex-1 mx-8">
<div class="text-center">
<i data-feather="arrow-right" class="w-8 h-8 mx-auto" style="color: #64748b;"></i>
</div>
</div>
<!-- Stage 2: Evidence Medicine -->
<div class="stage-card flex-1 text-center mx-4" style="color: #3b82f6;">
<div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating" style="animation-delay: 0.5s;">
<div class="relative">
<i data-feather="bar-chart-2" class="w-12 h-12" style="color: #3b82f6;"></i>
<i data-feather="database" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #1d4ed8;"></i>
</div>
</div>
<h3 class="text-2xl font-semibold mb-4" style="color: #3b82f6;">证据医学</h3>
<p class="text-gray-600 text-lg leading-relaxed">以数据为据,循证与规范</p>
<div class="mt-6 text-sm text-gray-500">
<p>临床试验 · 统计分析 · 标准指南</p>
</div>
</div>
<!-- Arrow 2 -->
<div class="arrow flex-1 mx-8">
<div class="text-center">
<i data-feather="arrow-right" class="w-8 h-8 mx-auto" style="color: #64748b;"></i>
</div>
</div>
<!-- Stage 3: Intelligent Medicine -->
<div class="stage-card flex-1 text-center mx-4" style="color: #06b6d4;">
<div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating pulse-glow" style="animation-delay: 1s;">
<div class="relative">
<i data-feather="cpu" class="w-12 h-12" style="color: #06b6d4;"></i>
<i data-feather="activity" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #0891b2;"></i>
</div>
</div>
<h3 class="text-2xl font-semibold mb-4" style="color: #06b6d4;">智能医学</h3>
<p class="text-gray-600 text-lg leading-relaxed">以智能为核,预测与精准</p>
<div class="mt-6 text-sm text-gray-500">
<p>人工智能 · 机器学习 · 精准医疗</p>
</div>
</div>
</div>
<!-- Progress Bar -->
<div class="mt-16">
<div class="flex justify-between items-center mb-4">
<span class="text-sm font-medium" style="color: #f59e0b;">19世纪前</span>
<span class="text-sm font-medium" style="color: #3b82f6;">20世纪</span>
<span class="text-sm font-medium" style="color: #06b6d4;">21世纪+</span>
</div>
<div class="h-2 bg-gray-200 rounded-full overflow-hidden">
<div class="h-full bg-gradient-to-r from-yellow-400 via-blue-500 to-cyan-500 rounded-full"></div>
</div>
</div>
</div>
<script>
feather.replace();
// Add some interactive animations
document.addEventListener('DOMContentLoaded', function() {
const cards = document.querySelectorAll('.stage-card');
cards.forEach((card, index) => {
card.addEventListener('mouseenter', () => {
cards.forEach(c => {
if (c !== card) {
c.style.opacity = '0.7';
c.style.transform = 'scale(0.95)';
}
});
});
card.addEventListener('mouseleave', () => {
cards.forEach(c => {
c.style.opacity = '1';
c.style.transform = 'scale(1)';
});
});
});
});
</script>
</body>
</html>