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

594 lines
27 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 20</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>"树精丛林……"他喃喃自语,"这里曾经是GBL教的植物研究区。我们在这里培育各种珍稀植物研究它们的药用价值。"</p>
<p>"那现在呢?"林克问。</p>
<p>维加的表情变得恐惧:"现在……它们是罗特斯的仆从了。"</p>
<p>---</p>
<p>深入丛林不久,他们就遭遇了第一只树精。</p>
<p>那是一棵原本应该普通的大树,但现在它的树干上长出了眼睛和嘴巴,枝条如同手臂般挥舞着,根部从土中拔出,化作移动的双腿。</p>
<p>"小心!"林克大喊。</p>
<p>树精的枝条如同鞭子般抽来,速度快得惊人。林克举剑格挡,晨曦斩断了几根枝条,但更多的枝条从四面八方涌来。</p>
<p>"流心·刺!"</p>
<p>林克突进到树精身前,精准地刺向它的主干。但树精的树皮坚硬如铁,晨曦只刺入了几寸就无法深入。</p>
<p>"好硬……"</p>
<p>"用火烧!"赛丽亚喊道,"植物怕火!"</p>
<p>林克明白了。他将魔力注入晨曦,剑身上的光芒变得更加炽热。</p>
<p>"里·鬼剑术!"</p>
<p>光剑的二连斩击带着灼热的光芒,每一次斩击都在树精的树干上留下焦黑的痕迹。树精发出痛苦的哀嚎,枝条疯狂地挥舞着。</p>
<p>"破军升龙击!"</p>
<p>巨剑破军带着上挑的力道,将树精庞大的身躯击飞。树精重重摔在地上,身上的火焰越烧越旺,最终化作一堆焦炭。</p>
<p>"有效……"林克喘着气,"光属性的灼热效果对植物类怪物有奇效。"</p>
<p>---</p>
<p>继续前进,周围的树精越来越多。</p>
<p>它们似乎被晨曦的光芒吸引,纷纷从丛林深处涌来。林克不得不频繁使用流心姿态在树木间穿梭,躲避树精的攻击。</p>
<p>"这里有太多树精了!"奥菲利亚惊恐地说,"我们会被淹没的!"</p>
<p>"跟我来!"维加突然喊道,"我知道一条小路,可以绕过大部分树精!"</p>
<p>林克犹豫了一下,但眼下没有其他选择。他跟着维加,在密集的丛林中穿行。</p>
<p>维加虽然被捆绑着,但对这片区域显然很熟悉。他带着众人穿过几道藤蔓屏障,来到了一个隐蔽的山洞前。</p>
<p>"这里……"维加的表情变得复杂,"是GBL教的秘密研究设施。"</p>
<p>他们进入山洞,发现里面是一个地下实验室。各种玻璃容器和实验器材散落在地上,墙壁上挂满了植物的解剖图和研究笔记。</p>
<p>但最让人震惊的,是实验室中央的那个巨大容器。</p>
<p>容器中漂浮着一个扭曲的生物——一半是植物,一半是章鱼般的触手。</p>
<p>"这是……"林克瞪大了眼睛。</p>
<p>"使徒融合实验。"维加的声音颤抖,"我们……试图将罗特斯的力量与植物融合,创造出听话的使徒士兵。"</p>
<p>---</p>
<p>赛丽亚看着那个扭曲的生物,感到一阵恶心。</p>
<p>"你们……怎么能做这种事?"</p>
<p>"我们被控制了……"维加跪在地上,"罗特斯的精神控制让我们失去了理智。那些实验……都是在他指引下进行的。"</p>
<p>林克拿起一份研究笔记,上面记录着可怕的实验数据:</p>
<p>"实验体第47号……将罗特斯的触手细胞注入树精体内……成功率12%……存活时间3天……"</p>
<p>"实验体第89号……人类与使徒细胞融合……全部死亡……"</p>
<p>林克的手在颤抖。GBL教……这个崇拜知识的教派竟然在进行如此残忍的禁忌实验。</p>
<p>"那个……"奥菲利亚指着实验室深处的一扇门,"那后面是什么?"</p>
<p>维加的脸色变得惨白:"那里……是实验体的培养区。最危险的东西……都在那里。"</p>
<p>就在这时,整个实验室突然震动起来。</p>
<p>那扇门的后面,传来了巨大的脚步声——每一步都让地面颤抖。</p>
<p>"不好……"维加惊恐地后退,"是树精王……它醒了!"</p>
<p>---</p>
<p>门被猛地撞开,一个庞然大物出现在众人面前。</p>
<p>树精王——原本是天帷巨兽上最古老的巨树被GBL教作为守护者培育了数百年。但现在它已经被罗特斯的力量彻底腐蚀变成了一个扭曲的怪物。</p>
<p>它的身高超过十米,树干上长满了章鱼的吸盘,枝条变成了带有倒刺的触手,根部盘绕在一起,形成了巨大的移动肢体。</p>
<p>最可怕的是它的眼睛——那是一双充满了疯狂和痛苦的巨大眼睛,直勾勾地盯着林克。</p>
<p>"杀了……入侵者……"树精王发出沙哑的声音,"保护……罗特斯大人……"</p>
<p>它挥舞着触手枝条,朝林克砸来。</p>
<p>林克迅速闪避,但触手的速度太快了,他的肩膀被擦中,顿时感到一阵剧痛——那些倒刺上有毒!</p>
<p>"林克!"赛丽亚冲过来,用治愈术为他解毒。</p>
<p>"这家伙……比神殿外围的维加强太多了!"林克咬牙。</p>
<p>树精王继续攻击,它的每一次挥击都能摧毁大片的实验设备。林克不得不在废墟中穿梭,寻找反击的机会。</p>
<p>"必须……攻击它的核心!"维加大喊,"树精的核心在树干中央那里有GBL教植入的控制装置"</p>
<p>林克抬头看去。树精王的树干太粗了,普通的攻击根本无法触及核心。</p>
<p>"需要……从内部攻击……"他喃喃自语。</p>
<p>然后,他想到了一个疯狂的主意。</p>
<p>---</p>
<p>"赛丽亚,掩护我!"林克大喊。</p>
<p>他发动流心姿态,身形如同鬼魅般朝树精王冲去。</p>
<p>树精王的触手疯狂挥舞,但林克凭借着流心·跃的空中机动性,一次次躲过攻击。</p>
<p>"就是现在!"</p>
<p>他跃到树精王的身前,不是攻击,而是直接钻进了它树干上的裂缝——那是实验留下的伤口,还没有完全愈合。</p>
<p>"林克!你疯了吗!"奥菲利亚尖叫。</p>
<p>树精王体内是一片扭曲的空间,到处都是蠕动的触手和腐蚀性的液体。林克强忍着恶心,在树干内部穿行。</p>
<p>他看到了——在树精王的核心位置有一个发光的装置。那是GBL教植入的控制器也是罗特斯力量的传导装置。</p>
<p>"找到了……"</p>
<p>林克举起晨曦,将全部的魔力注入其中。</p>
<p>"破极兵刃!"</p>
<p>剑身上的光芒达到了前所未有的亮度。在这黑暗的内部,晨曦如同一轮小太阳。</p>
<p>"里·鬼剑术·极限!"</p>
<p>连续的二连斩击!光属性的灼热效果在树精王体内爆发,那些触手和腐蚀液都被点燃。</p>
<p>树精王发出震耳欲聋的哀嚎,整个身体都在颤抖。</p>
<p>"最后一击!"</p>
<p>"破军升龙击!"</p>
<p>从上往下的斩击!晨曦刺入控制器,纯净的光明之力将罗特斯的腐蚀彻底净化。</p>
<p>---</p>
<p>当林克从树精王体内钻出来时,这个庞然大物已经倒在地上,身上的触手正在枯萎脱落。</p>
<p>它的眼睛中,疯狂正在褪去,取而代之的是一种解脱的平静。</p>
<p>"谢……谢……"树精王发出最后的声音,"终于……解脱了……"</p>
<p>然后,它的身体开始崩解,化作无数光点消散在空气中。</p>
<p>赛丽亚走到林克身边,轻轻握住他的手:"你做到了。你解放了它。"</p>
<p>林克看着手中的晨曦。剑身上的光芒比之前更亮了——几乎恢复到了五成。</p>
<p>"它在恢复……"他喃喃自语,"每次使用,它就变得更强。"</p>
<p>维加跪在地上,泪流满面:"我们……我们都错了……GBL教追求的禁忌知识……最终只会带来毁灭……"</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-19.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-21.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 current">第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(20)) {
readChapters.push(20);
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>