如何在公共标题中指明活动的导航项?

时间:2017-10-13 17:54:32

标签: html css twitter-bootstrap

我有一个标题,我计划在所有页面的顶部使用。我想将它保存在一个单独的文件中(我曾经常常使用php,但我是Bootstrap世界的新手);但是,我不确定如何动态地将active类分配给代表当前页面的nav-item。 Bootstrap(4)是否有针对此类事情的烘焙解决方案?我一直在寻找,但尚未找到一个好的解决方案。提前谢谢!



<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
  <div class="container">
    <a class="navbar-brand" href="#">My Site</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home
                <span class="sr-only">(current)</span>
              </a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Work</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Blog</a>
        </li>
      </ul>
    </div>
  </div>
</nav>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

Bootstrap包含一些jQuery,而不仅仅是CSS。但是,您总是可以在页面加载时运行一些JavaScript或jQuery,这些页面基于在加载页面时读取元素来切换类。例如,您可以:

1)在每个页面上都有一个标识符(例如,页面上元素中的类名,该元素保存页面的名称/值)。示例:

<h1 class="page-lookup">
 Home
</h1>

2)将jQuery设置为函数以读取类并使用.val()来获取元素的值。示例:

const activePage = $(".page-lookup").val()

3)在导航栏中的每个

  • 上添加一个ID,以唯一标识它们。示例:

    <li id="home-page" class="nav-item"> 
      <a class="nav-link" href="#">Home</a>
    </li>

    4)运行一个开关盒,该盒查找匹配的存储值(activePage)。在匹配的情况下,您可以运行jQuery来更新类,使其包含将触发Bootstrap格式的“活动”语法。

    示例:

    switch (activePage) {
        case Home:
            $('#home-page).attr("class", "nav-item active");
            break;
        case About:
            $('#about-page).attr("class", "nav-item active");
            break;
        }