javascript - 根据页面上的位置更改 Bootstrap 导航栏链接颜色

标签 javascript jquery html css twitter-bootstrap

我有点困惑。我在使用 bootstrap 之前创建了多个页面网站,我会在每个页面上包含导航栏标记并将当前页面链接设置为 .active 类,以便我可以访问它并很好地突出显示它。

我现在在一个单页网站上工作,它有一个粘性(“固定”)导航栏。我将其设置为使用 jQuery 滚动到基于该部分 ID 的页面下方的特定部分。但是,如何访问我当前所在的“当前”导航栏链接?

基本上,当我向下滚动页面时,我将遍历所有链接,我希望链接根据它所在的部分更改颜色。我是否需要使用 jQuery 来更改链接的类?或者 bootstrap 有内置的东西吗?

最佳答案

我认为您正在寻找 Bootstrap 的 Scrollspy。当当前滚动位置与页面上元素的 id 匹配时,它将在导航栏 li 元素中设置 active 类。

首先在 BODY 标签上设置 Scrollspy。偏移量是固定导航栏的高度:

$('body').scrollspy({
  target: '#myNavbar',
  offset: 50
});

HTML:

 <div class="navbar-collapse collapse" id="myNavbar">
    <ul class="nav navbar-nav navbar-left">
       <li><a href="#section1">One</a></li>
       <li class="active"><a href="#section2">Two</a></li>
       <li><a href="#section3">Three</a></li>
       ..
    </ul>
 </div>   

 <div id="section1">Section One</div>
 <div id="section2">Section Two</div>
 <div id="section3">Section Three</div>

然后覆盖此 CSS 以更改 .active 链接颜色:

.navbar-nav li>a:hover,.navbar-nav li>a:focus,.navbar-nav li.active {
    background-color:#000;
}

示例:http://www.codeply.com/go/v1AEOlZMtC

关于javascript - 根据页面上的位置更改 Bootstrap 导航栏链接颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272187/

相关文章:

javascript - Express js 4,Parse.com JSON 错误

javascript - IE 8 支持奇/偶斑马样式

javascript - 不使用 Flash 实现与 ctrl+c 相同的 ctrl+x 行为

javascript - 禁用文本框而不使用 disabled

javascript - 引用这个内部原型(prototype)函数

JavaScript 选项卡 - 控制它的 if 函数太多

javascript - 如何从子元素中删除 data-target 和 data-toggle 或禁用元素触发事件?

javascript - Angular 无法访问返回的数据

jquery - 如何在Jquery中检测div上的长按?

javascript - jquery从选择值设置html不起作用