NPC:修订间差异
来自江中缘
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第12行: | 第12行: | ||
-webkit-backdrop-filter:none!important; | -webkit-backdrop-filter:none!important; | ||
} | } | ||
body{ | body{background:url("https://wiki.mcjzy.net/images/4/46/%E6%B2%99%E6%BB%A9%E8%83%8C%E6%99%AF.png") no-repeat fixed center center / cover!important} | ||
.jzy-npc-shell{ | |||
max-width:min(1160px,calc(100vw - 560px)); | |||
margin:0 auto; | |||
color:#f3fbff; | |||
font-family:"HarmonyOS Sans SC","MiSans","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",sans-serif; | |||
font-size:18px; | |||
line-height:1.92; | |||
text-shadow:0 2px 5px rgba(1,18,28,.72); | |||
} | } | ||
.jzy-npc-shell *,.jzy-side-toc,.jzy-side-toc *{ | |||
.jzy-npc-shell *, | |||
.jzy-side-toc, | |||
.jzy-side-toc | |||
box-sizing:border-box; | box-sizing:border-box; | ||
font-family:"HarmonyOS Sans SC","MiSans","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",sans-serif!important; | font-family:"HarmonyOS Sans SC","MiSans","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",sans-serif!important; | ||
| 第26行: | 第28行: | ||
-moz-osx-font-smoothing:grayscale; | -moz-osx-font-smoothing:grayscale; | ||
text-rendering:optimizeLegibility; | text-rendering:optimizeLegibility; | ||
} | } | ||
.jzy-npc-hero, | .jzy-npc-hero, | ||
.jzy-npc-panel | .jzy-npc-panel{ | ||
border:1px solid rgba(153,228,235,.26); | border:1px solid rgba(153,228,235,.26); | ||
box-shadow:0 12px 28px rgba(1,18,28,.22),inset 0 1px 0 rgba(255,255,255,.10); | box-shadow:0 12px 28px rgba(1,18,28,.22),inset 0 1px 0 rgba(255,255,255,.10); | ||
} | } | ||
.jzy-npc-hero{ | .jzy-npc-hero{padding:30px 32px;background:rgba(7,52,63,.70);border-radius:18px} | ||
.jzy-npc-kicker{margin:0 0 6px;color:#fff1b7;font-size:15px;font-weight:900} | |||
.jzy-npc-title{margin:0 0 12px;color:#fff;font-size:40px;line-height:1.2;font-weight:900;text-shadow:0 3px 10px rgba(1,18,28,.82)} | |||
.jzy-npc-lead{max-width:none;margin:0;color:#e0f5f2;font-size:18px;line-height:1.95} | |||
} | @media(min-width:1280px){.jzy-npc-lead-line{white-space:nowrap}} | ||
.jzy-npc-kicker{ | .jzy-npc-divider{height:3px;margin:24px 0;border-radius:999px;background:linear-gradient(90deg,#78d8f0,#5ab878,#f4cf78);box-shadow:0 0 14px rgba(120,216,240,.20)} | ||
} | |||
.jzy-npc-title{ | |||
} | |||
.jzy-npc-lead{ | |||
} | |||
.jzy-npc- | |||
} | |||
.jzy-npc-divider{ | |||
} | |||
.jzy-npc-section{scroll-margin-top:96px} | .jzy-npc-section{scroll-margin-top:96px} | ||
.jzy-npc-section | .jzy-npc-section h2{margin:0 0 12px!important;color:#f5feff!important;font-size:29px!important;font-weight:900!important;line-height:1.32!important;border:0!important;text-shadow:0 3px 8px rgba(1,18,28,.78)!important} | ||
.jzy-npc-panel{margin:16px 0;padding:22px 24px;background:rgba(7,56,69,.61);border-radius:16px} | |||
.jzy-npc-region-tabs{display:flex;align-items:stretch;gap:0;margin:0 0 16px;overflow-x:auto;scrollbar-width:thin;background:rgba(3,35,48,.68);border:1px solid rgba(120,216,240,.36);border-radius:12px} | |||
.jzy-npc-region-tab{flex:0 0 auto;min-width:132px;padding:13px 20px;color:#d6eee6;font:inherit;font-size:17px;font-weight:900;line-height:1.25;cursor:pointer;background:transparent;border:0;border-right:1px solid rgba(120,216,240,.18);transition:background .18s ease,color .18s ease,box-shadow .18s ease} | |||
.jzy-npc-region-tab:last-child{border-right:0} | |||
.jzy-npc-region-tab:hover{color:#fff4c7;background:rgba(120,216,240,.10)} | |||
.jzy-npc-region-tab.is-active{color:#fff;background:rgba(8,92,111,.70);box-shadow:inset 0 -3px 0 #78d8f0} | |||
} | .jzy-npc-region-pane{display:none;width:100%;max-width:none;margin:0 auto} | ||
.jzy-npc-panel{ | .jzy-npc-region-pane.is-active{display:block} | ||
.jzy-npc-table{display:table!important;width:100%!important;max-width:none!important;margin:0;table-layout:fixed;overflow:hidden;border:1px solid rgba(153,228,235,.25)!important;border-radius:14px;border-collapse:separate!important;border-spacing:0!important;background:rgba(5,45,58,.58)!important;color:#effcff!important;box-shadow:0 10px 22px rgba(1,18,28,.16)} | |||
.jzy-npc-table th,.jzy-npc-table td{padding:13px 14px!important;border-color:rgba(188,240,238,.13)!important;vertical-align:middle!important;line-height:1.55} | |||
.jzy-npc-table th{color:#fff5c8!important;font-weight:900!important;text-align:center!important;background:rgba(4,40,52,.78)!important} | |||
.jzy-npc-table td{text-align:center!important;background:rgba(255,255,255,.025)!important} | |||
} | .jzy-npc-table th:nth-child(1),.jzy-npc-table td:nth-child(1){width:22%} | ||
.jzy-npc- | .jzy-npc-table th:nth-child(2),.jzy-npc-table td:nth-child(2){width:22%} | ||
.jzy-npc-table th:nth-child(3),.jzy-npc-table td:nth-child(3){width:36%} | |||
.jzy-npc-table th:nth-child(4),.jzy-npc-table td:nth-child(4){width:20%} | |||
. | |||
} | |||
.jzy-npc- | |||
.jzy-npc- | |||
.jzy-npc- | |||
.jzy-npc- | |||
.jzy-npc- | |||
.jzy-npc- | |||
} | |||
.jzy-npc-table | |||
} | |||
.jzy-npc-table th, | |||
.jzy-npc-table td{ | |||
} | |||
.jzy-npc-table th{ | |||
} | |||
.jzy-npc-table td{background:rgba(255,255,255,.025)!important} | |||
.jzy-npc-table tbody tr:nth-child(even) td{background:rgba(120,216,240,.055)!important} | .jzy-npc-table tbody tr:nth-child(even) td{background:rgba(120,216,240,.055)!important} | ||
.jzy-npc- | .jzy-npc-empty{margin:0;padding:34px 20px;color:#dcefed;text-align:center;background:rgba(5,46,60,.58);border:1px dashed rgba(141,224,230,.38);border-radius:14px;line-height:1.8} | ||
.jzy-npc-edit{margin:22px 0 8px;text-align:center} | |||
. | .jzy-npc-edit a{display:inline-flex;align-items:center;justify-content:center;min-width:150px;min-height:44px;padding:0 24px;border-radius:12px;background:linear-gradient(180deg,#fff4c7,#f4cf78);color:#164554!important;text-decoration:none!important;font-size:16px;font-weight:900;border:1px solid rgba(255,255,255,.45);border-bottom:3px solid #d4a848;box-shadow:0 10px 22px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.55);text-shadow:none!important} | ||
.jzy-npc- | .jzy-side-toc{position:fixed;top:50%;right:64px;width:176px!important;padding:12px!important;transform:translateY(-50%)!important;z-index:60!important;background:radial-gradient(circle at 18% 0%,rgba(120,216,240,.14),transparent 36%),linear-gradient(145deg,rgba(8,43,58,.62),rgba(10,46,31,.46))!important;border:1px solid rgba(126,204,218,.24)!important;border-radius:16px!important;box-shadow:0 14px 28px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.11)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important} | ||
.jzy-npc- | .jzy-side-toc-title{margin:0 0 10px!important;padding-bottom:8px!important;color:#fff4c7!important;font-size:16px!important;font-weight:900!important;line-height:normal!important;text-align:center!important;border-bottom:1px solid rgba(244,207,120,.28)!important} | ||
.jzy-side-toc a{display:block;margin:5px 0!important;padding:7px 9px!important;color:#d6eee6!important;font-size:13px!important;font-weight:800!important;line-height:1.3!important;text-decoration:none!important;background:rgba(255,255,255,.045)!important;border:1px solid rgba(255,255,255,.055)!important;border-radius:10px!important} | |||
.jzy-side-toc a:hover{transform:translateX(-2px);color:#fff4c7!important;background:rgba(244,207,120,.13)!important;border-color:rgba(244,207,120,.30)!important} | |||
#citizen-footer.jzy-footer-ready,.citizen-footer.jzy-footer-ready,#footer.jzy-footer-ready,.mw-footer.jzy-footer-ready{margin:0!important;padding:0!important;min-height:0!important} | |||
#citizen-footer.jzy-footer-ready::before,#citizen-footer.jzy-footer-ready::after,.citizen-footer.jzy-footer-ready::before,.citizen-footer.jzy-footer-ready::after,#footer.jzy-footer-ready::before,#footer.jzy-footer-ready::after{content:none!important;display:none!important} | |||
} | |||
.jzy-side-toc{ | |||
} | |||
.jzy-side-toc-title{ | |||
} | |||
.jzy-side-toc a{ | |||
} | |||
.jzy-side-toc a:hover{ | |||
} | |||
#citizen-footer.jzy-footer-ready, | |||
.citizen-footer.jzy-footer-ready, | |||
#footer.jzy-footer-ready, | |||
.mw-footer.jzy-footer-ready{ | |||
} | |||
#citizen-footer.jzy-footer-ready::before, | |||
#citizen-footer.jzy-footer-ready::after, | |||
.citizen-footer.jzy-footer-ready::before, | |||
.citizen-footer.jzy-footer-ready::after, | |||
#footer.jzy-footer-ready::before, | |||
#footer.jzy-footer-ready::after{content:none!important;display:none!important} | |||
#jzy-official-footer{padding-top:28px!important} | #jzy-official-footer{padding-top:28px!important} | ||
@media(max-width:1480px){.jzy-npc-shell{max-width:calc(100vw - 500px)}.jzy-side-toc{right:52px}} | |||
@media(max-width:1279px){.jzy-npc-shell{max-width:100%;margin:0}.jzy-side-toc{display:none}} | |||
@media(max-width:760px){.jzy-npc-shell{font-size:16px}.jzy-npc-hero{padding:22px 18px}.jzy-npc-title{font-size:30px}.jzy-npc-lead{font-size:16px}.jzy-npc-panel{padding:18px 15px}.jzy-npc-section h2{font-size:25px!important}.jzy-npc-table{font-size:14px}.jzy-npc-table th,.jzy-npc-table td{padding:10px 8px!important}} | |||
@media(max-width:1480px){ | |||
} | |||
@media(max-width:1279px){ | |||
@media(max-width: | |||
} | |||
</style> | </style> | ||
<div class="jzy- | <div class="jzy-npc-shell" id="npc-top"> | ||
<header class="jzy-npc-hero"> | |||
<p class="jzy-npc-kicker">江中缘 Wiki · 游戏基础</p> | |||
<h1 class="jzy-npc-title">NPC</h1> | |||
</ | <p class="jzy-npc-lead"><span class="jzy-npc-lead-line">NPC 是服务器世界中的交互角色,右键可对话、接取任务、打开商店或进入功能。</span><br><span class="jzy-npc-lead-line">本页按区域整理 NPC 的游戏截图、位置与主要功能,方便玩家快速查阅。</span></p> | ||
</ | </header> | ||
<div class="jzy-npc- | <div class="jzy-npc-divider"></div> | ||
< | <section class="jzy-npc-section" id="npc-list"> | ||
<div class="jzy-npc- | <h2>NPC 资料</h2> | ||
<div class="jzy-npc-panel"> | |||
<div class="jzy-npc-region-tabs" role="tablist" aria-label="NPC 区域切换"> | |||
<button class="jzy-npc-region-tab is-active" type="button" data-region="jingcheng" role="tab" aria-selected="true">璟城</button> | |||
<button class="jzy-npc-region-tab" type="button" data-region="deep-dark" role="tab" aria-selected="false">幽匿森林</button> | |||
</div> | <button class="jzy-npc-region-tab" type="button" data-region="inferno" role="tab" aria-selected="false">焚炎下界</button> | ||
<button class="jzy-npc-region-tab" type="button" data-region="the-end" role="tab" aria-selected="false">终焉末地</button> | |||
<button class="jzy-npc-region-tab" type="button" data-region="deep-domain" role="tab" aria-selected="false">深暗之域</button> | |||
<button class="jzy-npc-region-tab" type="button" data-region="frozen-realm" role="tab" aria-selected="false">冰封领域</button> | |||
</div> | |||
<div class="jzy-npc- | <div class="jzy-npc-region-pane is-active" data-region-pane="jingcheng" role="tabpanel"> | ||
<div class="jzy-npc-empty">璟城 NPC 资料整理中。确认后将补充 NPC 截图、位置与主要功能。</div> | |||
</div> | |||
<div class="jzy-npc-region-pane" data-region-pane="deep-dark" role="tabpanel" hidden><div class="jzy-npc-empty">幽匿森林 NPC 资料整理中。</div></div> | |||
<div class="jzy-npc-region-pane" data-region-pane="inferno" role="tabpanel" hidden><div class="jzy-npc-empty">焚炎下界 NPC 资料整理中。</div></div> | |||
<div class="jzy-npc-region-pane" data-region-pane="the-end" role="tabpanel" hidden><div class="jzy-npc-empty">终焉末地 NPC 资料整理中。</div></div> | |||
<div class="jzy-npc-region-pane" data-region-pane="deep-domain" role="tabpanel" hidden><div class="jzy-npc-empty">深暗之域 NPC 资料整理中。</div></div> | |||
<div class="jzy-npc-region-pane" data-region-pane="frozen-realm" role="tabpanel" hidden><div class="jzy-npc-empty">冰封领域 NPC 资料整理中。</div></div> | |||
</div> | |||
</section> | |||
<div class="jzy-npc-edit"><a href="/index.php?title=NPC&action=edit">编辑入口</a></div> | |||
</div> | |||
<div class="jzy-side-toc"> | |||
<div class="jzy- | <div class="jzy-side-toc-title">NPC 导航</div> | ||
< | <a href="#npc-top">页面顶部</a> | ||
< | <a href="#npc-list">NPC 资料</a> | ||
</div> | </div> | ||
< | <script> | ||
</ | (function () { | ||
var tabs = document.querySelectorAll('.jzy-npc-region-tab'); | |||
var panes = document.querySelectorAll('.jzy-npc-region-pane'); | |||
tabs.forEach(function (tab) { | |||
tab.addEventListener('click', function () { | |||
var region = tab.getAttribute('data-region'); | |||
tabs.forEach(function (item) { | |||
var active = item === tab; | |||
item.classList.toggle('is-active', active); | |||
item.setAttribute('aria-selected', active ? 'true' : 'false'); | |||
}); | |||
panes.forEach(function (pane) { | |||
var active = pane.getAttribute('data-region-pane') === region; | |||
pane.classList.toggle('is-active', active); | |||
pane.hidden = !active; | |||
}); | |||
}); | |||
}); | |||
})(); | |||
</script> | |||
<script> | <script> | ||
(function () { | (function () { | ||
function removeFooterArtifacts() { | function removeFooterArtifacts() { | ||
[ | ["#mw-data-after-content", ".mw-data-after-content", ".citizen-page-footer__info", ".citizen-page-footer .mw-footer-info"].forEach(function (selector) { | ||
document.querySelectorAll(selector).forEach(function (element) { | document.querySelectorAll(selector).forEach(function (element) { | ||
element.style.setProperty("display", "none", "important"); | element.style.setProperty("display", "none", "important"); | ||
| 第424行: | 第146行: | ||
}); | }); | ||
} | } | ||
function buildFooter() { | function buildFooter() { | ||
removeFooterArtifacts(); | removeFooterArtifacts(); | ||
var footer = document.querySelector("#citizen-footer, .citizen-footer, #footer, .mw-footer"); | var footer = document.querySelector("#citizen-footer, .citizen-footer, #footer, .mw-footer"); | ||
if (!footer || document.getElementById("jzy-official-footer")) return; | if (!footer || document.getElementById("jzy-official-footer")) return; | ||
var layout = document.createElement("section"); | var layout = document.createElement("section"); | ||
layout.id = "jzy-official-footer"; | layout.id = "jzy-official-footer"; | ||
| 第459行: | 第155行: | ||
layout.innerHTML = | layout.innerHTML = | ||
'<div class="jzy-official-footer-top">' + | '<div class="jzy-official-footer-top">' + | ||
'<a class="jzy-official-footer-brand" href="https://www.mcjzy.net/" target="_blank" rel="noopener" aria-label="访问江中缘官网"> | '<a class="jzy-official-footer-brand" href="https://www.mcjzy.net/" target="_blank" rel="noopener" aria-label="访问江中缘官网"><img src="https://wiki.mcjzy.net/images/1/10/3.png" alt="江中缘"></a>' + | ||
'<div class="jzy-official-footer-socials" aria-label="江中缘社区平台">' + | '<div class="jzy-official-footer-socials" aria-label="江中缘社区平台">' + | ||
'<span class="jzy-footer-social" title="抖音"><img src="https://wiki.mcjzy.net/images/thumb/0/01/%E6%8A%96%E9%9F%B3.png/120px-%E6%8A%96%E9%9F%B3.png?20260720050242" alt="抖音"></span>' + | '<span class="jzy-footer-social" title="抖音"><img src="https://wiki.mcjzy.net/images/thumb/0/01/%E6%8A%96%E9%9F%B3.png/120px-%E6%8A%96%E9%9F%B3.png?20260720050242" alt="抖音"></span>' + | ||
| 第472行: | 第166行: | ||
'<div class="jzy-official-footer-bottom">' + | '<div class="jzy-official-footer-bottom">' + | ||
'<p class="jzy-official-footer-copy">江中缘满载无限可能,随心定义你的线上欢乐时光。<br><strong>江中缘 Wiki</strong> 由社区维护,记录服务器的玩法、系统与资料。<br>本站内容基于《江中缘》相关的《我的世界》游戏内容整理;本 Wiki 与 Mojang Studios、Microsoft、网易无隶属关系。<br>© 2026 江中缘。版权所有。</p>' + | '<p class="jzy-official-footer-copy">江中缘满载无限可能,随心定义你的线上欢乐时光。<br><strong>江中缘 Wiki</strong> 由社区维护,记录服务器的玩法、系统与资料。<br>本站内容基于《江中缘》相关的《我的世界》游戏内容整理;本 Wiki 与 Mojang Studios、Microsoft、网易无隶属关系。<br>© 2026 江中缘。版权所有。</p>' + | ||
'<nav class="jzy-official-footer-links" aria-label="页脚链接"> | '<nav class="jzy-official-footer-links" aria-label="页脚链接"><a href="/index.php?title=%E6%B8%B8%E6%88%8F%E8%A7%84%E5%88%99">游戏规则</a><a href="/index.php?title=%E9%A6%96%E9%A1%B5">关于本站</a><a href="https://qm.qq.com/q/560dSf2pxe" target="_blank" rel="noopener">联系我们</a></nav>' + | ||
'</div>'; | '</div>'; | ||
footer.insertBefore(layout, footer.firstChild); | footer.insertBefore(layout, footer.firstChild); | ||
footer.classList.add("jzy-footer-ready"); | footer.classList.add("jzy-footer-ready"); | ||
window.setTimeout( | window.setTimeout(removeFooterArtifacts, 120); | ||
window.setTimeout(removeFooterArtifacts, 600); | |||
window.setTimeout( | |||
} | } | ||
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", buildFooter); | |||
else buildFooter(); | |||
})(); | })(); | ||
</script> | </script> | ||