Bootstrap 滚动监听(Scrollspy)插件

Scrollspy 插件

Scrollspy 插件用于根据滚动位置自动更新导航列表中的链接。


如何创建一个 Scrollspy

下面的示例演示如何创建 scrollspy:

实例
  1. <!-- 可滚动的区域 -->
  2. <body data-spy="scroll" data-target=".navbar" data-offset="50">
  3. <!-- 导航条 - <a> 元素可以用于跳转到滚动区域的一个章节 -->
  4. <nav class="navbar navbar-inverse navbar-fixed-top">
  5. ...
  6. <ul class="nav navbar-nav">
  7. <li><a href="#section1">章节 1</a></li>
  8. ...
  9. </nav>
  10. <!-- Section 1 -->
  11. <div id="section1">
  12. <h1>章节 1</h1>
  13. <p>尝试滚动此页面,并在滚动时查看导航列表!</p>
  14. </div>
  15. ...
  16. </body>
实例解释

data-spy="scroll" 添加到应该用作可滚动区域的元素(通常是 <body> 元素)。

然后对(.navbar)的 id 值或类名添加 data-target 属性等于 id 值 或导航条的类(.navbar)。这样使导航栏与可滚动区域关联起来。

请注意,可滚动元素必须与导航栏列表项内链接的 ID 匹配(<div id="section1"> 匹配 <a href="#section1">)。

可选的 data-offset 属性指定计算滚动位置时从顶部偏移的像素数。它当您感觉导航栏内的链接在跳转到可滚动元素时过早或过早地更改活动状态时非常有用。默认值为 10 像素。

需要相对定位:带有 data-spy="scroll" 的元素需要CSS position属性,其值为 "relative" 才能正常工作。

Scrollspy 垂直目录

在本例中,我们使用 Bootstrap 的垂直导航按钮作为菜单:

实例
  1. <body data-spy="scroll" data-target="#myScrollspy" data-offset="20">
  2. <div class="container">
  3. <div class="row">
  4. <nav class="col-sm-3" id="myScrollspy">
  5. <ul class="nav nav-pills nav-stacked">
  6. <li><a href="#section1">章节 1</a></li>
  7. ...
  8. </ul>
  9. </nav>
  10. <div class="col-sm-9">
  11. <div id="section1">
  12. <h1>章节 1</h1>
  13. <p>尝试滚动此页面,并在滚动时查看导航列表!</p>
  14. </div>
  15. ...
  16. </div>
  17. </div>
  18. </div>
  19. </body>

完整的 Scrollspy 参考

有关所有 scrollspy 方法和事件的完整参考,请访问本站的 Bootstrap JS Scrollspy 参考.