Bootstrap 滚动监听 (高级)


滚动监听

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


如何创建滚动监听

以下实例演示了如何创建滚动监听:

实例

<!-- 可滚动区域 -->
<body data-spy="scroll" data-target=".navbar" data-offset="50">

<!-- 导航栏 - <a> 元素用于跳转到可滚动区域中的某个部分 -->
<nav class="navbar navbar-inverse navbar-fixed-top">
...
  <ul class="nav navbar-nav">
    <li><a href="#section1">Section 1</a></li>
    ...
</nav>

<!-- 第 1 节 -->
<div id="section1">
  <h1>Section 1</h1>
  <p>Try to scroll this page and look at the navigation bar while scrolling!</p>
</div>
...

</body>
亲自试一试 »

实例解析

向您想要监听的元素(通常是 <body>)添加 data-spy="scroll"

然后添加 data-target 属性,它的值为导航栏的 id 或 class (.navbar)。这样就可以联系上可滚动区域。

注意可滚动项元素上的 id(<div id="section1"> 必须匹配导航栏上的链接选项 <a href="#section1">)。

可选项 data-offset 属性用于计算滚动位置时,距离顶部的偏移像素。 默认为 10 px。

设置相对定位: 使用 data-spy="scroll" 的元素需要将其 CSS position 属性设置为 "relative" 才能起作用。



滚动监听垂直菜单

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

实例

<body data-spy="scroll" data-target="#myScrollspy" data-offset="20">

  <div class="container">
    <div class="row">
      <nav class="col-sm-3" id="myScrollspy">
        <ul class="nav nav-pills nav-stacked">
          <li><a href="#section1">Section 1</a></li>
          ...
        </ul>
      </nav>
      <div class="col-sm-9">
        <div id="section1">
          <h1>Section 1</h1>
          <p>Try to scroll this page and look at the navigation list while scrolling!</p>
        </div>
        ...
      </div>
    </div>
  </div>

</body>
亲自试一试 »

完整的 Bootstrap 滚动监听参考

有关滚动监听的选项、方法和事件的完整参考,请查看我们的 Bootstrap JS 滚动监听参考