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

620 lines
30 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 33</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>"太多了!"艾伦大喊,"林克,用猛龙断空斩开路!"</p>
<p>"明白!"</p>
<p>林克深吸一口气,将全身的剑气凝聚。金色的龙形剑气再次从晨曦上爆发,贯穿了整个墓道。</p>
<p>"猛龙断空斩!"</p>
<p>轰——</p>
<p>剑气所过之处,所有的亡灵都被斩成了碎片。墓道被清理出了一条通道。</p>
<p>"快走!"林克大喊,"这个技能消耗很大,我不能连续使用!"</p>
<p>四人沿着通道快速前进,终于来到了墓地的第一个密室。</p>
<p>---</p>
<p>密室中央,一具巨大的骷髅正跪坐在那里。</p>
<p>那骷髅足有三米高,身上穿着残破的暗精灵铠甲,手中握着一柄燃烧着火焰的巨大战斧。即使已经死去多年,它身上依然散发着强大的威压。</p>
<p>这就是邪龙斯皮兹的左翼守卫——火焰骷髅将军。</p>
<p>"入侵者……"骷髅将军缓缓站起身,空洞的眼眶中燃烧着红色的火焰,"离开这里……否则……死……"</p>
<p>"抱歉,我们需要你守护的钥匙。"林克举起晨曦,"得罪了!"</p>
<p>战斗瞬间爆发。</p>
<p>骷髅将军挥舞着火焰战斧,每一次攻击都带着灼热的气浪。林克不断闪避,但密室里空间有限,他很难找到反击的机会。</p>
<p>"赛丽亚,用水属性魔法!"林克大喊。</p>
<p>"明白!水精灵之箭!"</p>
<p>数道水箭射向骷髅将军,但它在身前形成了一道火焰护盾,将水箭全部蒸发。</p>
<p>"不行!它的火焰太强了!"赛丽亚焦急地说。</p>
<p>"让我来!"奥菲利亚扔出几瓶炼金药剂,"冰冻药剂!"</p>
<p>药剂在骷髅将军身上炸开,冰霜瞬间覆盖了它的身体。火焰护盾被削弱了不少。</p>
<p>"就是现在!"林克抓住机会,发动了攻击。</p>
<p>"破军升龙击!"</p>
<p>他冲到骷髅将军身前,一剑斩向它的胸口。但骷髅将军的反应极快,战斧横扫,将林克击飞出去。</p>
<p>"林克!"两个少女同时惊呼。</p>
<p>林克重重地撞在墙上,感到胸口一阵剧痛。他低头一看,铠甲上留下了一道深深的烧焦痕迹。</p>
<p>"好强的力量……"他咬牙站起身。</p>
<p>骷髅将军已经再次冲了上来,战斧高举,准备给林克致命一击。</p>
<p>就在这千钧一发之际,艾伦冲了上来,用圣光护盾挡住了这一击。</p>
<p>"快走!我来拖住它!"艾伦大喊,但他的圣光护盾在火焰战斧的攻击下开始出现裂痕。</p>
<p>林克知道,不能再拖了。他必须一击制胜。</p>
<p>他闭上眼睛,将全部的剑意凝聚在晨曦上。体内的剑气疯狂涌动,他感觉到自己触及到了某个新的境界。</p>
<p>"这是……"</p>
<p>他睁开眼睛,眼中闪过一道精光。</p>
<p>"猛龙断空斩·改!"</p>
<p>这一次,龙形剑气比之前更加巨大,更加璀璨。金色的剑气如同一条真正的巨龙,咆哮着冲向骷髅将军。</p>
<p>骷髅将军举起战斧想要抵挡,但在这股力量面前,它的防御如同纸糊一般脆弱。</p>
<p>轰——!!!</p>
<p>剑气贯穿了骷髅将军的胸口,它的身体开始崩解,火焰战斧掉落在地,发出清脆的声响。</p>
<p>"不……可能……"骷髅将军的声音渐渐消失,最后化作一堆碎骨。</p>
<p>在碎骨之中,一把散发着红色光芒的钥匙静静地躺在那里。</p>
<p>第一把钥匙,入手。</p>
<p>---</p>
<p>战斗结束后,林克再也支撑不住,单膝跪倒在地。</p>
<p>刚才那一击几乎耗尽了他全部的体力,而且他受了不轻的伤。骷髅将军的火焰在他的胸口留下了一道焦黑的伤痕,即使经过了赛丽亚的初步治疗,依然隐隐作痛。</p>
<p>"林克!"赛丽亚跑过来,眼泪在眼眶中打转,"你怎么样?不要吓我……"</p>
<p>"我没事……"林克勉强笑了笑,"只是有点累……"</p>
<p>"你需要休息。"艾伦走过来,检查了一下林克的伤势,"这种烧伤需要及时处理,否则会留下后遗症。"</p>
<p>"前面有一个安全的墓室。"奥菲利亚指着地图说,"我们可以去那里休息。"</p>
<p>"好……"林克点点头,在赛丽亚和奥菲利亚的搀扶下,慢慢向前走去。</p>
<p>---</p>
<p>安全的墓室比想象中要干净许多。</p>
<p>这里似乎是一个祭祀用的房间,没有石棺,只有一些古老的祭坛和雕像。角落里还有一些已经风化的毛毯和木柴。</p>
<p>艾伦点燃了篝火,温暖的光芒驱散了墓室的阴冷。</p>
<p>"赛丽亚,奥菲利亚,你们照顾林克。"艾伦说,"我去外面警戒。"</p>
<p>"我也去。"赛丽亚刚要站起来,却被林克拉住了手。</p>
<p>"赛丽亚……"林克轻声说,"让奥菲利亚照顾我就好……你先去休息……"</p>
<p>赛丽亚愣了一下,然后看了看奥菲利亚,似乎明白了什么。</p>
<p>她轻轻咬了咬嘴唇,然后点了点头:"好……那我去帮艾伦警戒。奥菲利亚小姐,林克就拜托你了。"</p>
<p>奥菲利亚脸一红,低下头:"我……我会照顾好他的……"</p>
<p>赛丽亚看了林克一眼,眼中闪过一丝复杂的神色,然后转身离开了墓室。</p>
<p>墓室里只剩下了林克和奥菲利亚两个人。</p>
<p>---</p>
<p>"林克……"奥菲利亚跪在林克身边,小心翼翼地解开他的铠甲。</p>
<p>当铠甲被解开后,露出了林克胸口那道焦黑的伤痕。即使经过赛丽亚的治疗,伤口周围依然红肿,看起来触目惊心。</p>
<p>"对不起……"奥菲利亚的眼泪掉了下来,"都是我太没用了……如果我能更强一些,你就不会受伤……"</p>
<p>"别哭……"林克伸手擦去她的眼泪,"不是你的错……那个骷髅将军本来就很强……"</p>
<p>奥菲利亚握住他的手,贴在自己的脸颊上:"让我为你治疗……这是我唯一能做的……"</p>
<p>她低下头,轻轻地吻在了林克的伤口上。</p>
<p>那是一个轻柔的、带着凉意的吻。奥菲利亚的嘴唇在伤口上轻轻移动,带来一阵阵酥麻的感觉。</p>
<p>"奥菲利亚……"林克轻声唤她。</p>
<p>"林克……"奥菲利亚抬起头,眼中满是深情,"我……我想把自己给你……"</p>
<p>她的脸羞得通红,但眼神却异常坚定:"我知道你心里最喜欢的是赛丽亚小姐……但我……我真的好喜欢你……只要一次就好……让我成为你的女人……"</p>
<p>林克看着她,心中涌起一股复杂的情感。</p>
<p>这个少女为了他,不惜一切地跟随他冒险。她的感情纯粹而热烈,让他无法拒绝。</p>
<p>"奥菲利亚……"他轻声说,"你确定吗?"</p>
<p>奥菲利亚点点头,然后开始解开自己的衣裙。</p>
<p>淡蓝色的衣裙滑落,露出她白皙的肌肤和纤细的身体。在篝火的光芒下,她的身体如同象牙般细腻,散发着青春的气息。</p>
<p>林克看着她,心跳不由自主地加快了。</p>
<p>奥菲利亚红着脸,缓缓靠近他,然后跨坐在他的身上。</p>
<p>"我……我是第一次……"她小声说,"如果做得不好……请原谅我……"</p>
<p>林克伸手搂住她的腰,将她拉近:"没关系……慢慢来……"</p>
<p>奥菲利亚闭上眼睛,缓缓坐了下去。</p>
<p>疼痛让她皱起了眉头,但她咬紧嘴唇,没有发出声音。她知道,这是成为林克女人的代价,也是她梦寐以求的时刻。</p>
<p>林克轻轻抚摸着她的背,给予她安慰和力量。</p>
<p>随着疼痛逐渐消退,奥菲利亚开始轻轻移动。她的动作生涩而笨拙,但充满了热情。</p>
<p>林克配合着她的节奏,两人的身体在这寂静的墓室中交缠在一起。</p>
<p>篝火的光芒摇曳,将两人的影子投射在墙上,如同一场古老的仪式。</p>
<p>奥菲利亚的喘息声渐渐急促,她紧紧抱着林克,仿佛要将他融入自己的身体。</p>
<p>"林克……林克……"她不停地唤着他的名字,声音中充满了爱意和满足。</p>
<p>当一切结束时,奥菲利亚瘫软在林克的怀里,脸上带着幸福的红晕。</p>
<p>"谢谢你……林克……"她轻声说,"我终于……成为你的人了……"</p>
<p>林克搂着她,轻轻吻了吻她的额头:"以后……我会好好待你的。"</p>
<p>奥菲利亚笑了,那笑容如同春日里最美的花朵。</p>
<p>她知道,从这一刻起,她的人生已经彻底改变。</p>
<p>---</p>
<p>第二天一早,当赛丽亚回到墓室时,看到奥菲利亚正依偎在林克怀里睡觉。</p>
<p>她的衣裙有些凌乱,脸上还带着未褪去的红晕。而林克也裸着上身,胸口的伤口已经被重新包扎过。</p>
<p>赛丽亚愣了一下,然后轻轻叹了口气。</p>
<p>她走到两人身边,轻轻推了推林克:"起床了,懒猪。"</p>
<p>林克睁开眼睛,看到赛丽亚,有些心虚:"赛丽亚……我……"</p>
<p>"不用说了。"赛丽亚打断了他,脸上带着无奈的笑容,"我早就知道会这样。"</p>
<p>她看向还在熟睡的奥菲利亚,轻声说:"好好对她。她是个好女孩。"</p>
<p>林克点点头,握住了赛丽亚的手:"谢谢你,赛丽亚。"</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-32.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-34.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">第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 current">第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(33)) {
readChapters.push(33);
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>