李由284 2024-03-16 16:55 采纳率: 14.3%
浏览 12
已结题

设计导航栏时,只有点击首页的时候选中效果才会展示

设计导航栏时,只有点击首页的时候选中效果才会展示,其他的不会变
如图所示

img


这是什么原因呀
这是我写的界面

img

img


希望得到大家的帮助!感谢

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-16 16:55
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 在设计导航栏时,只有点击首页选项时才会出现选中效果,其他选项不会发生变化。这是因为在点击首页选项时,页面会重新加载,而其他选项只是通过 JavaScript 切换页面内容。 解决方案: 在 HTML 中为首页选项添加一个 class,用于表示当前选中状态。然后在 JavaScript 中,当点击其他选项时,移除首页选项的 class,同时给当前点击的选项添加 class。 示例代码: HTML:
    <nav>
      <ul>
        <li class="active"><a href="#">首页</a></li>
        <li><a href="#">新闻</a></li>
        <li><a href="#">产品</a></li>
        <li><a href="#">关于</a></li>
      </ul>
    </nav>
    

    CSS:

    nav ul {
      list-style: none;
      margin: 0;
      padding: 0;
    }
    nav li {
      display: inline-block;
      margin-right: 10px;
    }
    nav li a {
      text-decoration: none;
    }
    nav li.active a {
      background-color: #333;
      color: #fff;
    }
    

    JavaScript:

    var navItems = document.querySelectorAll('nav li');
    for (var i = 0; i < navItems.length; i++) {
      navItems[i].addEventListener('click', function() {
        // Remove active class from all items
        for (var j = 0; j < navItems.length; j++) {
          navItems[j].classList.remove('active');
        }
        
        // Add active class to clicked item
        this.classList.add('active');
      });
    }
    

    效果: 点击其他选项时,首页选项的选中状态会取消,当前点击的选项会变为选中状态。 参考文献: - https://stackoverflow.com/questions/6000498/add-remove-active-class-from-a-list-item/6000517#6000517

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月16日
  • 创建了问题 3月16日