书籍推荐
约 1952 字大约 7 分钟
2024-11-14
<div class="container">
<header>
<h1><i class="fas fa-history"></i>阅读的书籍</h1>
<p class="subtitle">记录书籍阅读中的感悟与心得</p>
</header>
<div class="instructions">
<h3><i class="fas fa-info-circle"></i>记录的意义</h3>
<p>AI的发展让获取知识的方式更加简单,很多时候是否没有必要再对知识想法做记录规整,每当想到自己做的事情都是重复别人已经完成过的重复工作,都会感到困惑。记录的意义应该有下面的意义:</p>
<ul>
<li>思维深化的必要过程</li>
<li>个人成长轨迹可视化</li>
<li>情感与记忆的锚点</li>
</ul>
</div>
<div class="timeline">
<!-- 时间线项目 1 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-lightbulb"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2016</div>
<h3 class="timeline-title"><i class="fas fa-lightbulb"></i>牧羊少年的奇幻之旅</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<!-- 时间线项目 2 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-code"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2016</div>
<h3 class="timeline-title"><i class="fas fa-code"></i>苏菲的世界</h3>
<p class="timeline-description">既是一部哲学史入门读物,也是一部引人入胜的成长小说。</p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<!-- 时间线项目 3 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-users"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2016</div>
<h3 class="timeline-title"><i class="fas fa-users"></i>解忧杂货店</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<!-- 时间线项目 4 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-rocket"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2017</div>
<h3 class="timeline-title"><i class="fas fa-rocket"></i>单车上路</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<!-- 时间线项目 5 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-chart-line"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2017</div>
<h3 class="timeline-title"><i class="fas fa-chart-line"></i>没有色彩的多崎作和他的巡礼之年</h3>
<p class="timeline-description">多崎作在36岁时,在女友木元沙罗的鼓励下,踏上旅程,逐一探访16年前集体与他绝交的四位高中挚友,以解开当年被骤然驱逐的谜团。</p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<!-- 时间线项目 6 -->
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2018</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>北方的空地</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2018</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>编写可读代码艺术</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2019</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>万里任禅游</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2019</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>算法</h3>
<p class="timeline-description"></p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2020</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>少有人走的路</h3>
<p class="timeline-description">真正的成长与成熟需要勇气面对痛苦、承担责任,并通过自律与爱走向心智的成熟。</p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
<div class="timeline-item">
<div class="timeline-marker">
<i class="fas fa-trophy"></i>
</div>
<div class="timeline-content">
<div class="timeline-date">2025</div>
<h3 class="timeline-title"><i class="fas fa-trophy"></i>以日为鉴</h3>
<p class="timeline-description">日本“失去的三十年”期间(大致从20世纪90年代泡沫经济破裂开始)的几个核心人群,并分析了他们的际遇。</p>
<a href="#" class="timeline-link">查看详情</a>
</div>
</div>
</div>
</div>// 添加时间线节点的点击事件
document.querySelectorAll('.timeline-link').forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
const linkText = this.textContent;
const nodeTitle = this.closest('.timeline-content').querySelector('.timeline-title').textContent;
const nodeDate = this.closest('.timeline-content').querySelector('.timeline-date').textContent
openBookPage(nodeTitle, nodeDate);
// 这里模拟链接跳转,实际应用中可以将href设置为实际URL
alert(`跳转到: ${nodeTitle}\n链接文本: ${linkText}\n\n在实际应用中,这里将跳转到相应的详细页面。`);
// 模拟加载效果
this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 加载中...';
setTimeout(() => {
this.innerHTML = linkText;
}, 1000);
});
});
function openBookPage(bookName, year) {
const url = `http://localhost:8080/阅读/${year}-${bookName}/`;
window.open(url, '_blank');
}
// 添加时间线节点的悬停效果增强
document.querySelectorAll('.timeline-content').forEach(content => {
content.addEventListener('mouseenter', function() {
const marker = this.closest('.timeline-item').querySelector('.timeline-marker');
marker.style.transform = 'translateX(-50%) scale(1.15)';
});
content.addEventListener('mouseleave', function() {
const marker = this.closest('.timeline-item').querySelector('.timeline-marker');
marker.style.transform = 'translateX(-50%) scale(1)';
});
});* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f8f9fa;
color: #333;
line-height: 1.6;
padding: 20px;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
header {
text-align: center;
margin-bottom: 50px;
}
h1 {
color: #2c3e50;
font-size: 2.8rem;
margin-bottom: 15px;
}
.subtitle {
color: #7f8c8d;
font-size: 1.2rem;
max-width: 600px;
margin: 0 auto;
}
.timeline {
position: relative;
max-width: 800px;
margin: 0 auto;
}
/* 时间线中心线 */
.timeline::before {
content: '';
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 100%;
background: linear-gradient(to bottom, #3498db, #9b59b6, #e74c3c);
border-radius: 10px;
}
.timeline-item {
display: flex;
justify-content: center;
margin-bottom: 60px;
position: relative;
}
/* 奇数项在左侧,偶数项在右侧 */
.timeline-item:nth-child(odd) .timeline-content {
margin-right: auto;
margin-left: 0;
text-align: right;
padding-right: 70px;
}
.timeline-item:nth-child(even) .timeline-content {
margin-left: auto;
margin-right: 0;
text-align: left;
padding-left: 70px;
}
.timeline-content {
width: 45%;
background-color: white;
border-radius: 12px;
padding: 25px;
box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
transition: transform 0.3s ease, box-shadow 0.3s ease;
position: relative;
}
.timeline-content:hover {
transform: translateY(-5px);
box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}
/* 时间节点图标 */
.timeline-marker {
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 40px;
height: 40px;
border-radius: 50%;
background-color: white;
border: 4px solid #3498db;
display: flex;
align-items: center;
justify-content: center;
color: #3498db;
font-size: 18px;
z-index: 10;
box-shadow: 0 0 0 6px rgba(52, 152, 219, 0.2);
transition: all 0.3s ease;
}
.timeline-item:hover .timeline-marker {
transform: translateX(-50%) scale(1.1);
box-shadow: 0 0 0 8px rgba(52, 152, 219, 0.3);
}
/* 每个节点不同的颜色主题 */
.timeline-item:nth-child(2) .timeline-marker {
border-color: #9b59b6;
color: #9b59b6;
box-shadow: 0 0 0 6px rgba(155, 89, 182, 0.2);
}
.timeline-item:nth-child(3) .timeline-marker {
border-color: #2ecc71;
color: #2ecc71;
box-shadow: 0 0 0 6px rgba(46, 204, 113, 0.2);
}
.timeline-item:nth-child(4) .timeline-marker {
border-color: #e74c3c;
color: #e74c3c;
box-shadow: 0 0 0 6px rgba(231, 76, 60, 0.2);
}
.timeline-item:nth-child(5) .timeline-marker {
border-color: #f39c12;
color: #f39c12;
box-shadow: 0 0 0 6px rgba(243, 156, 18, 0.2);
}
.timeline-item:nth-child(6) .timeline-marker {
border-color: #1abc9c;
color: #1abc9c;
box-shadow: 0 0 0 6px rgba(26, 188, 156, 0.2);
}
.timeline-date {
font-weight: 600;
color: #3498db;
margin-bottom: 8px;
font-size: 1.1rem;
}
.timeline-title {
font-size: 1.5rem;
color: #2c3e50;
margin-bottom: 12px;
display: flex;
align-items: center;
}
.timeline-title i {
margin-right: 10px;
}
.timeline-description {
color: #555;
margin-bottom: 20px;
}
.timeline-link {
display: inline-block;
background-color: #3498db;
color: white;
text-decoration: none;
padding: 10px 20px;
border-radius: 50px;
font-weight: 600;
transition: all 0.3s ease;
border: 2px solid #3498db;
}
.timeline-link:hover {
background-color: white;
color: #3498db;
}
.timeline-item:nth-child(2) .timeline-link {
background-color: #9b59b6;
border-color: #9b59b6;
}
.timeline-item:nth-child(2) .timeline-link:hover {
background-color: white;
color: #9b59b6;
}
.timeline-item:nth-child(3) .timeline-link {
background-color: #2ecc71;
border-color: #2ecc71;
}
.timeline-item:nth-child(3) .timeline-link:hover {
background-color: white;
color: #2ecc71;
}
.timeline-item:nth-child(4) .timeline-link {
background-color: #e74c3c;
border-color: #e74c3c;
}
.timeline-item:nth-child(4) .timeline-link:hover {
background-color: white;
color: #e74c3c;
}
/* 响应式设计 */
@media (max-width: 768px) {
.timeline::before {
left: 30px;
}
.timeline-item {
justify-content: flex-start;
}
.timeline-content {
width: 85%;
margin-left: 70px !important;
margin-right: 0 !important;
text-align: left !important;
padding: 20px !important;
padding-left: 25px !important;
}
.timeline-marker {
left: 30px;
}
h1 {
font-size: 2.2rem;
}
}
footer {
text-align: center;
margin-top: 60px;
color: #7f8c8d;
font-size: 0.9rem;
padding: 20px;
border-top: 1px solid #eee;
}
.instructions {
background-color: #fff;
border-radius: 10px;
padding: 25px;
margin-bottom: 40px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
border-left: 5px solid #3498db;
}
.instructions h3 {
color: #2c3e50;
margin-bottom: 15px;
display: flex;
align-items: center;
}
.instructions h3 i {
margin-right: 10px;
color: #3498db;
}
.instructions ul {
padding-left: 20px;
}
.instructions li {
margin-bottom: 8px;
}