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

650 lines
31 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 15</div>
<h1 class="chapter-title">石巨人塔</h1>
</header>
<article class="chapter-content">
<p>离开人偶玄关时,天空之城的阳光依旧明媚。</p>
<p>但林克的心情并不轻松。GSD的离去意味着接下来的路必须靠他们自己而石巨人塔——那座传闻中比龙人之塔和人偶玄关更加危险的区域正等待着他们。</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>【接受任务:收集石巨人的心脏 x5】</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>"上面就是BOSS所在的位置。黄金巨人普拉塔尼……诺顿说它是石巨人塔最强大的存在甚至可能拥有自己的意识。"</p>
<p>"准备好了吗?"赛丽亚问。</p>
<p>林克深吸一口气,握紧了晨曦。</p>
<p>"走吧。"</p>
<p>---</p>
<p>石巨人塔顶层,与下方的空间完全不同。</p>
<p>这里是一个巨大的圆形大厅,穹顶高不见顶,四周的墙壁上刻满了古老的符文。大厅中央,一个庞大的身影静静伫立。</p>
<p>黄金巨人普拉塔尼。</p>
<p>它比普通石巨人大出两倍,全身呈现出耀眼的金色,表面刻满了复杂的符文。两颗红宝石般的眼睛燃烧着火焰般的红光。</p>
<p>最引人注目的是,它的胸口嵌着一颗巨大的魔法石,散发着令人心悸的能量波动。</p>
<p>"入侵者……"普拉塔尼的声音低沉而沙哑,"又是来打扰吾主安宁的愚蠢人类吗……"</p>
<p>林克心中一凛。诺顿说得对这个BOSS确实拥有自己的意识</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-14.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-16.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">第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 current">第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(15)) {
readChapters.push(15);
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>