Twitter Bootstrap Scrollspy仅突出显示最后一项

时间:2013-07-10 15:38:25

标签: javascript jquery html twitter-bootstrap scrollspy

我一直在使用Twitter Bootstrap Scrollspy插件,但对于我的生活,我无法让它工作。这是内容区域的HTML

<div data-spy="scroll" >
  <section id="page_home" class="page_home" style="width:100%;background-color:rgb(245,245,245);">
    <div class="container">
      Home
    </div>
  </section>

  <section id="page_projects" class="page_projects" style="width:100%;background-color:rgb(25,25,25);">
    <div class="container">
      Projects
    </div>
  </section>

  <section id="page_services" class="page_services" style="width:100%;background-color:rgb(245,245,245);">
    <div class="container">
      Services
    </div>
  </section>

  <section id="page_downloads" class="page_downloads" style="width:100%;background-color:rgb(25,25,25);">
    <div class="container">
      Downloads
    </div>
  </section>

  <section id="page_about" class="page_about" style="width:100%;background-color:rgb(245,245,245);">
    <div class="container">
      About
    </div>
  </section>

  <section id="page_contact" class="page_contact" style="width:100%;background-color:rgb(25,25,25);">
    <div class="container">
      Contact
    </div>
  </section>
</div>

这是导航栏的HTML代码

<div id="navbar" class="navbar navbar-inverse navbar-fixed-bottom">
  <div class="navbar-inner">
    <div class="container">
      <ul class="nav">
        <li><a href="#page_home">Home</a></li>
        <li><a href="#page_projects">Projects</a></li>
        <li><a href="#page_services">Services</a></li>
        <li><a href="#page_downloads">Downloads</a></li>
        <li><a href="#page_about">About</a></li>
        <li><a href="#page_contact">Contact</a></li>
      </ul>
    </div>
  </div>
</div><!-- /.navbar -->

我看了一些其他帖子,但是对于我的生活,我无法弄清楚为什么它只被选中导航栏中的最后一项。

有谁可以帮我弄清楚为什么scrollspy只选择最后一项以及如何纠正它?

4 个答案:

答案 0 :(得分:8)

将HTML doctype声明添加到页面顶部为我修复了它:

<!DOCTYPE html>

答案 1 :(得分:2)

这是你想要监视的body

而不是

<div data-spy="scroll" >

使用

<body data-spy="scroll" data-target="#navbar">

答案 2 :(得分:1)

试试这段代码:

 $('[data-spy="scroll"]').each(function () {
     var $spy = $(this).scrollspy('refresh')
  });

我遇到过类似的问题。我已使用上面的代码解决了这个问题。

答案 3 :(得分:0)

快速查看the documentation for ScrollSpy,您似乎错过了data-target

在你的情况下,你的第一行是:

<div data-spy="scroll" data-target="#navbar">