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

598 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 21</div>
<h1 class="chapter-title">炼狱</h1>
</header>
<article class="chapter-content">
<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>"破极兵刃!"</p>
<p>BUFF开启晨曦的光芒变得更加炽热。</p>
<p>"流心·跃!"</p>
<p>林克跃起,跳过一道熔岩河,直接落在夜叉的身后。</p>
<p>夜叉疯狂地转身,挥舞着利爪。但林克的动作更快。</p>
<p>"里·鬼剑术!"</p>
<p>连续的二连斩击!光属性的攻击精准地斩向夜叉的头部。</p>
<p>"就是现在!"</p>
<p>"破军升龙击!"</p>
<p>上挑!巨剑破军带着一往无前的气势斩向夜叉的头部,将它彻底消灭。</p>
<p>夜叉发出最后的哀嚎,身体开始崩解,化作一堆灰烬。</p>
<p>---</p>
<p>随着深入炼狱,温度越来越高。</p>
<p>林克感觉自己的体力在快速消耗,每一次呼吸都像是在吸入火焰。赛丽亚的情况也不太好,她的治愈术在这种高温下效果大打折扣。</p>
<p>"前面……有东西。"奥菲利亚指着远处。</p>
<p>在炼狱的最深处,有一个巨大的熔岩池。熔岩池的中央,有一个岩石平台,平台上站着一个妖异的身影。</p>
<p>那是夜叉王——炼狱的统治者,夜叉族群中最强大的存在。</p>
<p>他比普通夜叉大出数倍,全身肌肉虬结,皮肤呈现出岩浆般的赤红色。他的背后生着巨大的蝙蝠翅膀,手中握着一把由熔岩凝结而成的巨斧,斧身上缠绕着黑色的诅咒气息。</p>
<p>"那是……夜叉的王。"维加的声音充满了恐惧,"普通的夜叉就已经很可怕了,而他……是夜叉中的王者,实力远超普通的夜叉。"</p>
<p>夜叉王发现了他们,发出震耳的咆哮。</p>
<p>"更多的……祭品……"他的声音如同雷鸣,震得整个洞穴都在颤抖,"罗特斯大人……会喜欢你们的……"</p>
<p>他展开翅膀,从岩石平台上飞起,手中的熔岩巨斧猛地挥出!</p>
<p>---</p>
<p>"散开!"林克大喊。</p>
<p>熔岩巨斧砸在他们刚才站立的位置,地面瞬间被砸出一个大坑,熔岩从裂缝中喷涌而出。</p>
<p>"这种力量……"林克咬牙,"比赛格哈特还要强!"</p>
<p>夜叉王在空中盘旋,发出震耳的笑声。他突然俯冲下来,速度快得只留下一道红色残影。</p>
<p>"流心·跃!"</p>
<p>林克跃起躲避,但夜叉王的反应更快。他在空中转身,巨斧如影随形地追来。</p>
<p>"不好!"</p>
<p>林克勉强举剑格挡,但巨斧的冲击力将他击飞出去。他重重摔在地上,感到胸口一阵剧痛。</p>
<p>"林克!"赛丽亚想要冲过来,但夜叉王挥动翅膀,掀起一阵热风,将她逼退。</p>
<p>"别过来!"林克大喊,"我能应付!"</p>
<p>他咬牙站起身,强迫自己集中精神。</p>
<p>夜叉王的攻击模式很特殊——他能在空中自由移动,速度极快,而且那把熔岩巨斧的攻击力惊人。普通的剑术很难对他造成伤害。</p>
<p>"必须……想办法把他逼到地面!"</p>
<p>---</p>
<p>林克开始改变战术。</p>
<p>他不再主动进攻,而是利用流心姿态的高速移动在熔岩池周围穿梭,引诱夜叉王追击。</p>
<p>夜叉王果然上当。他发出震耳的笑声,展开翅膀紧追不舍,手中的熔岩巨斧不断砸向林克。</p>
<p>"流心·刺!"</p>
<p>林克突然停下,反身突刺。夜叉王没想到他会反击,慌忙闪避,动作不由得慢了下来。</p>
<p>"就是现在!"</p>
<p>"破军升龙击!"</p>
<p>上挑!巨剑破军带着一往无前的气势斩向夜叉王。夜叉王勉强用翅膀格挡,但巨大的冲击力将他从空中击落。</p>
<p>他重重摔在地上,发出愤怒的咆哮。</p>
<p>"你……该死!"</p>
<p>夜叉王从地上爬起,眼中的火焰燃烧得更加旺盛。他张开嘴,喷出一道炽热的火焰!</p>
<p>林克侧身躲过,同时发动反击。</p>
<p>"里·鬼剑术!"</p>
<p>二连斩击!晨曦的光属性攻击在夜叉王身上留下深深的伤痕,发出"嗤嗤"的灼烧声。</p>
<p>夜叉王发出痛苦的咆哮。他想要飞回空中,但林克不给机会。</p>
<p>"流心·跃!接·升!"</p>
<p>空中连击!林克跃起,斩向夜叉王的翅膀。连续的攻击终于将他的左翼重创,让他无法飞行。</p>
<p>夜叉王跌落在地上,再也无法保持那副高高在上的姿态。</p>
<p>"结束了。"林克举起晨曦。</p>
<p>"不……不可能……"夜叉王惊恐地后退,"罗特斯大人……会为我报仇的……"</p>
<p>"那就让他来吧。"</p>
<p>"流心·刺!"</p>
<p>林克突进到夜叉王身前,晨曦如同一道闪电刺入他的胸口。纯净的光明之力在夜叉王体内爆发,恶魔发出最后的哀嚎,身体开始崩解,化作一堆熔岩和灰烬。</p>
<p>---</p>
<p>夜叉王被击败了。</p>
<p>维加走到那堆灰烬前,松了一口气:"夜叉王……炼狱最强大的存在……终于死了。"</p>
<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-20.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-22.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 current">第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(21)) {
readChapters.push(21);
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>