jianzhihuixiang/alacarte-novel-website/chapters/chapter-2.html
小虾米 f8894dd3f3 fix: 修复上一章/下一章导航对小数章节(如107.5)的支持
- updateNavButtons: 改用数组索引查找,而非简单的+1/-1
- updateSidebarHighlight: 使用parseFloat比较章节ID
- updateMobileTOCHighlight: 使用parseFloat比较章节ID
- 更新版本号强制刷新缓存
2026-03-27 17:42:41 +08:00

597 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>洛兰深处 - 阿拉德:剑之回响</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-primary: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
--text-primary: #e0e0e0;
--text-secondary: #888;
--accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--border-color: rgba(255,255,255,0.1);
--btn-bg: rgba(255,255,255,0.1);
--btn-hover: rgba(255,255,255,0.2);
}
[data-theme="light"] {
--bg-primary: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
--text-primary: #333;
--text-secondary: #666;
--border-color: rgba(0,0,0,0.1);
--btn-bg: rgba(0,0,0,0.05);
--btn-hover: rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Noto Serif SC', serif;
background: var(--bg-primary);
color: var(--text-primary);
line-height: 1.8;
min-height: 100vh;
transition: all 0.3s ease;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
padding-bottom: 120px;
}
/* 顶部导航 */
.top-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--border-color);
z-index: 1000;
padding: 10px 20px;
}
.top-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-link {
color: var(--text-primary);
text-decoration: none;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
padding: 8px 16px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
transition: all 0.3s ease;
}
.nav-link:hover {
background: var(--btn-hover);
}
.chapter-header {
text-align: center;
padding: 80px 0 40px;
border-bottom: 1px solid var(--border-color);
margin-bottom: 40px;
}
.chapter-number {
font-size: 14px;
color: var(--text-secondary);
letter-spacing: 4px;
text-transform: uppercase;
margin-bottom: 10px;
}
.chapter-title {
font-size: 32px;
font-weight: 700;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 20px;
}
.chapter-meta {
font-size: 14px;
color: var(--text-secondary);
}
.chapter-content {
font-size: 18px;
line-height: 2;
text-align: justify;
}
.chapter-content p {
margin-bottom: 1.5em;
text-indent: 2em;
}
.chapter-content p:first-of-type::first-letter {
font-size: 3em;
float: left;
line-height: 1;
margin-right: 8px;
margin-top: -5px;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-weight: 700;
}
/* 固定底部导航 */
.fixed-nav {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-top: 1px solid var(--border-color);
z-index: 1000;
padding: 15px 20px;
}
.fixed-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-btn {
padding: 12px 24px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
color: var(--text-primary);
text-decoration: none;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
cursor: pointer;
}
.nav-btn:hover {
background: var(--btn-hover);
transform: translateY(-2px);
}
.nav-btn.disabled {
opacity: 0.3;
cursor: not-allowed;
pointer-events: none;
}
/* 右侧滚动按钮 */
.scroll-buttons {
position: fixed;
right: 20px;
bottom: 90px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1001;
}
.scroll-btn {
width: 40px;
height: 40px;
border-radius: 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
}
.scroll-btn:hover {
background: var(--btn-hover);
}
/* 侧边栏 - 标题固定,内容滚动 */
.sidebar {
position: fixed;
right: 20px;
top: 50%;
transform: translateY(-50%);
background: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
border: 1px solid var(--border-color);
width: 200px;
max-height: 70vh;
z-index: 999;
display: flex;
flex-direction: column;
}
.sidebar-title {
font-size: 14px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
padding: 15px 20px;
border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
}
.sidebar-content {
overflow-y: auto;
padding: 10px 20px 20px;
flex: 1;
scrollbar-width: thin;
scrollbar-color: transparent transparent;
transition: scrollbar-color 0.3s ease;
}
.sidebar-content:hover {
scrollbar-color: rgba(255,255,255,0.3) transparent;
}
.sidebar-content::-webkit-scrollbar {
width: 6px;
}
.sidebar-content::-webkit-scrollbar-track {
background: transparent;
}
.sidebar-content::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 3px;
transition: background 0.3s ease;
}
.sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.3);
}
.sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(255,255,255,0.5);
}
[data-theme="light"] .sidebar-content:hover {
scrollbar-color: rgba(0,0,0,0.3) transparent;
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.3);
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(0,0,0,0.5);
}
.sidebar-chapter {
display: block;
padding: 8px 0;
color: #aaa;
text-decoration: none;
font-size: 13px;
border-bottom: 1px solid rgba(255,255,255,0.05);
transition: all 0.3s ease;
line-height: 1.5;
}
.sidebar-chapter:hover {
color: #667eea;
}
.sidebar-chapter.current {
color: #667eea;
font-weight: 600;
}
@media (max-width: 1200px) {
.sidebar {
display: none;
}
}
@media (max-width: 600px) {
.chapter-title {
font-size: 24px;
}
.chapter-content {
font-size: 16px;
}
.fixed-nav-content {
gap: 10px;
}
.nav-btn {
padding: 10px 15px;
font-size: 12px;
}
.scroll-buttons {
right: 10px;
bottom: 80px;
}
.scroll-btn {
width: 36px;
height: 36px;
}
}
/* 滚动条样式 */
.sidebar::-webkit-scrollbar {
width: 4px;
}
.sidebar::-webkit-scrollbar-track {
background: transparent;
}
.sidebar::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.2);
border-radius: 2px;
}
</style>
</head>
<body>
<!-- 顶部导航 -->
<nav class="top-nav">
<div class="top-nav-content">
<a href="../index.html" class="nav-link">返回首页</a>
<button class="nav-link" id="themeToggle">切换主题</button>
</div>
</nav>
<div class="container">
<header class="chapter-header">
<div class="chapter-number">Chapter 2</div>
<h1 class="chapter-title">洛兰深处</h1>
</header>
<article class="chapter-content">
<p>林克再次醒来时,发现自己躺在一个简陋的山洞里。</p>
<p>洞外传来"叮叮当当"的声音,像是金属碰撞。他撑起身体,左肩和肋下的伤口已经包扎好了。</p>
<p>"醒了就出来。"</p>
<p>阿甘左的声音从外面传来。</p>
<p>林克走出山洞,看到阿甘左正在一块空地上练剑。他的动作看似简单,每一次挥剑都带着一种难以言喻的韵律,仿佛与天地融为一体。</p>
<p>"你的基础太差了。"阿甘左收起剑,转过身来,"三年来,你都在干什么?"</p>
<p>"在……找你。"林克低下头。</p>
<p>阿甘左沉默了一会儿,然后叹了口气。</p>
<p>"坐下,我有话跟你说。"</p>
<p>两人在洞口的石头上坐下。阿甘左从腰间取下酒壶,喝了一口。</p>
<p>"鬼手,是卡赞 syndrome 的产物。"他说,"被诅咒的人,左手会变成血红色,获得鬼神之力的同时,也会被诅咒侵蚀。最终……会发狂,变成只知杀戮的怪物。"</p>
<p>林克心中一沉。</p>
<p>"但也不是没有办法。"阿甘左继续说,"鬼剑士通过修炼,可以掌控这份力量,甚至将其转化为自身的战力。狂战士、鬼泣、阿修罗、剑魂……都是鬼剑士的转职方向。"</p>
<p>"转职?"</p>
<p>"那是后话。"阿甘左站起身,"现在的你,连最基础的剑术都没掌握。想要活下去,先学会用剑。"</p>
<p>他扔给林克一把木剑。</p>
<p>"从今天开始,我教你剑术基础。"</p>
<p>---</p>
<p>接下来的七天,林克在阿甘左的指导下刻苦修炼。</p>
<p>从握剑的姿势,到挥剑的角度,从步伐的移动,到呼吸的配合。阿甘左的要求极其严格,稍有不对就会让他重来。</p>
<p>"剑不是用来砍的,是用来刺的。"</p>
<p>"你的重心太靠后了,这样发力不足。"</p>
<p>"呼吸!挥剑的时候要配合呼吸!"</p>
<p>林克浑身酸痛,但没有一句怨言。</p>
<p>他知道,这是他变强的唯一机会。</p>
<p>第七天的傍晚,阿甘左终于点了点头。</p>
<p>"基础勉强合格了。"他说,"明天,去洛兰深处。"</p>
<p>"洛兰深处?"</p>
<p>"那里有一只哥布林头目,比普通哥布林强十倍。"阿甘左看着他,"杀了他,证明你有资格继续走下去。"</p>
<p>林克握紧手中的霜刃。</p>
<p>"我明白了。"</p>
<p>---</p>
<p>洛兰深处比外围更加阴森。</p>
<p>树木更加茂密,光线几乎无法穿透。地上到处都是哥布林留下的陷阱和标记,空气中弥漫着一股腐臭的味道。</p>
<p>林克小心翼翼地前进,每一步都踩得极轻。</p>
<p>三天前,他被这里的哥布林围攻到濒死。今天,他要一雪前耻。</p>
<p>"嘎——嘎——"</p>
<p>前方传来了哥布林的叫声。林克屏住呼吸,悄悄靠近。</p>
<p>那是一个小型的哥布林营地,七八只哥布林围坐在火堆旁,似乎在分食什么东西。而在营地中央,站着一个比其他哥布林高大得多的身影。</p>
<p>那是一只哥布林头目。</p>
<p>身高接近两米,浑身肌肉虬结,皮肤呈现出暗绿色。它手里拿着一把巨大的石斧,眼中闪烁着嗜血的光芒。</p>
<p>林克深吸一口气,从藏身处走出。</p>
<p>"叽叽?"</p>
<p>哥布林们发现了他,纷纷拿起武器。</p>
<p>头目也转过头来,看到林克后,发出一声刺耳的咆哮。</p>
<p>"吼——!!!"</p>
<p>战斗瞬间爆发。</p>
<p>哥布林们一拥而上,挥舞着短刀和木棍冲向林克。</p>
<p>但这一次,林克没有慌乱。</p>
<p>他按照阿甘左教的方法,调整呼吸,控制节奏。霜刃在他手中化作一道银色的光芒,每一次挥出都精准地命中目标。</p>
<p>"噗嗤——"</p>
<p>第一只哥布林倒下。</p>
<p>"唰——"</p>
<p>第二只、第三只……</p>
<p>鲜血飞溅,但林克的眼神越来越冷静。他能感觉到,体内的某种力量正在苏醒。</p>
<p>左手的鬼手开始发烫,但他没有压制,而是试着去引导它……</p>
<p>"吼!!!"</p>
<p>哥布林头目终于按捺不住,挥舞着石斧冲了过来!</p>
<p>那一斧来势汹汹,带着呼啸的风声。林克连忙举刀格挡,巨大的力量震得他手臂发麻。</p>
<p>"好强……"</p>
<p>头目得势不饶人,石斧如雨点般落下。林克不断闪避,但营地的空间太小,他很快就退到了角落。</p>
<p>"叽叽叽!"其他哥布林在一旁助威,眼中闪烁着残忍的光芒。</p>
<p>"不能这样下去……"</p>
<p>林克咬紧牙关,感受着体内那股躁动的力量。</p>
<p>鬼手……如果借用鬼手的力量……</p>
<p>"不要依赖它。"</p>
<p>阿甘左的话突然在脑海中响起。</p>
<p>"鬼手是双刃剑,借用它的力量,就是在向诅咒妥协。只有当你真正掌控它的时候,才能使用。"</p>
<p>"现在,用你自己的力量!"</p>
<p>林克猛然醒悟。</p>
<p>他深吸一口气,将全部的注意力集中在手中的霜刃上。</p>
<p>不是鬼手,不是诅咒,而是剑……他手中的剑!</p>
<p>"斩——!"</p>
<p>霜刃划出一道完美的弧线,在头目挥斧的瞬间,精准地切入它的喉咙!</p>
<p>"咕噜……"</p>
<p>头目瞪大了眼睛,不敢相信眼前的一切。它的石斧掉在地上,双手捂住喉咙,但鲜血还是喷涌而出。</p>
<p>"轰——"</p>
<p>巨大的身躯倒下,砸起一片尘土。</p>
<p>其他哥布林见状,吓得魂飞魄散,四散逃窜。</p>
<p>林克跪在地上,大口大口地喘着粗气。</p>
<p>他赢了。</p>
<p>用他自己的力量,战胜了强大的敌人。</p>
<p>---</p>
<p>"做得不错。"</p>
<p>阿甘左的声音从树上传来。他不知什么时候到了那里,将整个过程都看在眼里。</p>
<p>"你……一直在看着?"林克抬头问。</p>
<p>"如果你连一只哥布林头目都打不过,说明我这三年的教导白费了。"阿甘左从树上跃下,"不过,你最后的选择让我有些意外。"</p>
<p>"什么选择?"</p>
<p>"你没有使用鬼手的力量。"阿甘左看着他,眼中闪过一丝赞赏,"大多数人面对生死关头,都会选择借用鬼神之力。但你没有。"</p>
<p>"因为您说过,那是妥协。"林克站起身,擦去脸上的血迹,"我想靠自己的力量变强。"</p>
<p>阿甘左沉默了很久。</p>
<p>"走吧。"他转过身,"艾尔文防线还有人在等你。"</p>
<p>林克愣了一下,随即明白过来。</p>
<p>赛丽亚……</p>
<p>---</p>
<p>回到艾尔文防线时,已经是傍晚。</p>
<p>赛丽亚正在旅馆门口焦急地张望着,看到林克的身影后,她脸上绽放出灿烂的笑容。</p>
<p>"你回来了!"</p>
<p>"嗯,我回来了。"林克点点头,"答应过你的。"</p>
<p>"太好了……"赛丽亚眼眶微红,"我还以为……"</p>
<p>"以为我不会回来了?"</p>
<p>"嗯……"赛丽亚低下头,"很多冒险者都是这样,出去了就再也没回来……"</p>
<p>林克看着她,心中涌起一股暖意。</p>
<p>"我不会死的。"他说,"至少在还清你这顿饭之前。"</p>
<p>赛丽亚破涕为笑。</p>
<p>"那就说好了,今晚我请你吃饭!"</p>
<p>---</p>
<p>夜幕降临,艾尔文防线渐渐安静下来。</p>
<p>林克站在旅馆的屋顶,看着满天繁星。阿甘左已经离开了,说是要去调查格兰之森的异动。</p>
<p>"三个月后,去赫顿玛尔找我。"这是他留下的最后一句话。</p>
<p>三个月……</p>
<p>林克握紧拳头。</p>
<p>他要变得更强。强到能够掌控鬼手,强到能够保护重要的人。</p>
<p>左手的绷带下,鬼手依然在微微发烫。</p>
<p>但那股力量,他不会再畏惧了。</p>
<p>---</p>
<p>(第二章完)</p>
</article>
</div>
<!-- 固定底部导航 -->
<nav class="fixed-nav">
<div class="fixed-nav-content">
<a href="chapter-1.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-3.html" class="nav-btn ">下一章</a>
</div>
</nav>
<!-- 右侧滚动按钮 -->
<div class="scroll-buttons">
<button class="scroll-btn" id="scrollTop" title="回到顶部"></button>
<button class="scroll-btn" id="scrollBottom" title="回到底部"></button>
</div>
<!-- 侧边栏章节导航 -->
<aside class="sidebar">
<div class="sidebar-title">章节导航</div>
<div class="sidebar-content" id="sidebarContent">
<a href="chapter-1.html" class="sidebar-chapter">第1章洛兰的风</a>
<a href="chapter-2.html" class="sidebar-chapter current">第2章洛兰深处</a>
<a href="chapter-3.html" class="sidebar-chapter">第3章幽暗密林</a>
<a href="chapter-4.html" class="sidebar-chapter">第4章幽暗密林深处</a>
<a href="chapter-5.html" class="sidebar-chapter">第5章雷鸣废墟</a>
<a href="chapter-6.html" class="sidebar-chapter">第6章格拉卡</a>
<a href="chapter-7.html" class="sidebar-chapter">第7章烈焰格拉卡</a>
<a href="chapter-8.html" class="sidebar-chapter">第8章冰霜幽暗密林</a>
<a href="chapter-9.html" class="sidebar-chapter">第9章转职之路</a>
<a href="chapter-10.html" class="sidebar-chapter">第10章暗黑雷鸣废墟</a>
<a href="chapter-11.html" class="sidebar-chapter">第11章剑魂转职仪式</a>
<a href="chapter-12.html" class="sidebar-chapter">第12章西海岸</a>
<a href="chapter-13.html" class="sidebar-chapter">第13章龙人之塔</a>
<a href="chapter-14.html" class="sidebar-chapter">第14章人偶玄关</a>
<a href="chapter-15.html" class="sidebar-chapter">第15章石巨人塔</a>
<a href="chapter-16.html" class="sidebar-chapter">第16章黑暗玄廊</a>
<a href="chapter-17.html" class="sidebar-chapter">第17章城主宫殿</a>
<a href="chapter-18.html" class="sidebar-chapter">第18章番外·悬空城</a>
<a href="chapter-19.html" class="sidebar-chapter">第19章天帷巨兽·神殿外围</a>
<a href="chapter-20.html" class="sidebar-chapter">第20章树精丛林</a>
<a href="chapter-21.html" class="sidebar-chapter">第21章炼狱</a>
<a href="chapter-22.html" class="sidebar-chapter">第22章西海岸的闲暇</a>
<a href="chapter-23.html" class="sidebar-chapter">第23章极昼</a>
<a href="chapter-24.html" class="sidebar-chapter">第24章第一脊椎</a>
<a href="chapter-25.html" class="sidebar-chapter">第25章赫顿玛尔的准备</a>
<a href="chapter-26.html" class="sidebar-chapter">第26章第二脊椎</a>
<a href="chapter-27.html" class="sidebar-chapter">第27章重逢的温柔</a>
<a href="chapter-28.html" class="sidebar-chapter">第28章暗精灵的委托</a>
<a href="chapter-29.html" class="sidebar-chapter">第29章阿法利亚营地</a>
<a href="chapter-30.html" class="sidebar-chapter">第30章浅栖之地</a>
<a href="chapter-31.html" class="sidebar-chapter">第31章蜘蛛洞穴</a>
<a href="chapter-32.html" class="sidebar-chapter">第32章克伦特的委托</a>
<a href="chapter-33.html" class="sidebar-chapter">第33章暗精灵墓地·左翼守卫</a>
<a href="chapter-34.html" class="sidebar-chapter">第34章暗精灵墓地·剩余三将军</a>
</div>
</aside>
<script>
// 记录阅读进度
let readChapters = JSON.parse(localStorage.getItem('readChapters') || '[]');
if (!readChapters.includes(2)) {
readChapters.push(2);
localStorage.setItem('readChapters', JSON.stringify(readChapters));
}
// 主题切换
const themeToggle = document.getElementById('themeToggle');
const savedTheme = localStorage.getItem('theme') || 'dark';
document.documentElement.setAttribute('data-theme', savedTheme);
themeToggle.textContent = savedTheme === 'dark' ? '浅色' : '深色';
themeToggle.addEventListener('click', () => {
const currentTheme = document.documentElement.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
themeToggle.textContent = newTheme === 'dark' ? '浅色' : '深色';
});
// 滚动到顶部
document.getElementById('scrollTop').addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
// 滚动到底部
document.getElementById('scrollBottom').addEventListener('click', () => {
window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
});
// 页面加载时,侧边栏自动滚动到当前章节
window.addEventListener('load', () => {
const sidebarContent = document.getElementById('sidebarContent');
const currentChapter = sidebarContent.querySelector('.current');
if (currentChapter) {
currentChapter.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
});
</script>
</body>
</html>