You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在点击器游戏中满足rebirths条件前隐藏导航标签页

解决导航标签页的条件隐藏问题

首先,问题的核心是你之前依赖getElementById来控制元素显示,但非首页的导航标签没有设置id,导致JS无法定位到这些元素进行状态修改。咱们可以通过以下步骤来快速修复:

第一步:给需要隐藏的导航项添加统一标识

修改所有页面的导航HTML,给除了Home之外的每个导航项所在的<li>标签添加一个专属class(比如locked-nav-item),这样就能批量选中这些需要控制的元素:

<!-- 第一个页面的导航修改后 -->
<div class="nav_bar">
  <ul>
    <li><a href="GameMainWindow.html" id="onlink">Home</a></li>
    <li class="locked-nav-item"><a href="SkillTree.html">SkillTree</a></li>
    <li class="locked-nav-item"><a href="Equipment.html">Equipment</a></li>
    <li class="locked-nav-item"><a href="Pets.html">Pets</a></li>
    <li class="locked-nav-item"><a href="Skills.html">Skills</a></li>
    <li class="locked-nav-item"><a href="Quests.html">Quests</a></li>
  </ul>
</div>

<!-- 第二个页面的导航同步修改 -->
<div class="nav_bar">
  <ul>
    <li><a href="GameMainWindow.html">Home</a></li>
    <li class="locked-nav-item"><a href="SkillTree.html">SkillTree</a></li>
    <li class="locked-nav-item"><a href="Equipment.html">Equipment</a></li>
    <li class="locked-nav-item"><a href="Pets.html">Pets</a></li>
    <li class="locked-nav-item"><a href="Skills.html" id="onlink">Skills</a></li>
    <li class="locked-nav-item"><a href="Quests.html">Quests</a></li>
  </ul>
</div>

第二步:编写导航解锁的JavaScript逻辑

沿用你之前控制矿石显示的思路,写一个专门控制导航显示的函数,通过document.querySelectorAll批量获取所有锁定的导航项,再根据rebirths数值判断是否解锁:

// 获取所有需要隐藏的导航项
const lockedNavItems = document.querySelectorAll('.locked-nav-item');

// 定义检查导航解锁状态的函数,替换成你的rebirths阈值(比如这里设为5)
function checkUnlockNav() {
  lockedNavItems.forEach(item => {
    if (rebirths >= 5) { // 这里改成你需要的重生次数要求
      item.style.visibility = 'visible';
    } else {
      item.style.visibility = 'hidden';
    }
  });
}

// 页面加载时立即执行,确保初始状态正确
window.onload = function() {
  checkUnlockNav();
};

// 记得在rebirths数值变化时调用这个函数,比如重生完成后:
// rebirths++;
// checkUnlockNav();

进阶优化:给不同导航项设置不同解锁阈值

如果想让不同的导航页面对应不同的重生次数要求,可以给每个<li>添加自定义属性,让逻辑更灵活:

<li class="locked-nav-item" data-rebirth-need="3"><a href="SkillTree.html">SkillTree</a></li>
<li class="locked-nav-item" data-rebirth-need="5"><a href="Equipment.html">Equipment</a></li>

对应的JS修改:

function checkUnlockNav() {
  lockedNavItems.forEach(item => {
    const requiredRebirths = parseInt(item.dataset.rebirthNeed);
    if (rebirths >= requiredRebirths) {
      item.style.visibility = 'visible';
    } else {
      item.style.visibility = 'hidden';
    }
  });
}

最后建议把这段JS放到一个共用的文件(比如gameControls.js)里,然后在所有页面的<head>里引入,避免重复代码:

<script src="js/gameControls.js"></script>

这样修改后,初始状态下除首页外的所有导航都会被隐藏,当玩家的重生次数达到设定阈值后,对应标签就会自动显示出来了。

内容的提问来源于stack exchange,提问作者tmanrocks994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:20:00