Bootstrap 4 滚动监听 (高级)
Bootstrap 4 滚动监听
滚动监听(Scrollspy)插件,即自动更新导航插件,会根据滚动条的位置自动更新对应的导航目标。其基本的实现是随着您的滚动。
如何创建滚动监听
以下实例演示了如何创建滚动监听:
实例
<!-- 可滚动区域 -->
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<!-- 导航栏 - <a> 元素用于跳转到可滚动区域中的某个部分 -->
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
...
<ul class="navbar-nav">
<li><a href="#section1">Section 1</a></li>
...
</nav>
<!-- 第 1 节 -->
<div id="section1">
<h1>Section 1</h1>
<p>尝试滚动此页面并在滚动时查看导航栏!</p>
</div>
...
</body>
亲自试一试 »
实例解析
向您想要监听的元素(通常是 <body>
)添加 data-bs-spy="scroll"
。
然后添加 data-bs-target
属性,它的值为导航栏的 id 或 class (.navbar
)。这样就可以联系上可滚动区域。
注意可滚动项元素上的 id(<div id="section1">
必须匹配导航栏上的链接选项 <a href="#section1">
)。
可选项 data-bs-offset
属性用于计算滚动位置时,距离顶部的偏移像素。 默认为 10 px。
设置相对定位: 使用 data-spy="scroll"
的元素需要将其 CSS position 属性设置为
"relative"
才能起作用。
滚动监听垂直菜单
在本例中,我们使用 Bootstrap 的垂直导航按钮作为菜单:
实例
<body data-spy="scroll" data-target="#myScrollspy" data-offset="1">
<div class="container-fluid">
<div class="row">
<nav class="col-sm-3 col-4" id="myScrollspy">
<ul class="nav nav-pills flex-column">
<li class="nav-item">
<a class="nav-link active" href="#section1">Section 1</a>
</li>
...
</ul>
</nav>
<div class="col-sm-9 col-8">
<div id="section1">
<h1>Section 1</h1>
<p>尝试滚动此页面并在滚动时查看菜单!</p>
</div>
...
</div>
</div>
</div>
</body>
亲自试一试 »
完整的 Bootstrap 滚动监听参考
有关滚动监听的选项、方法和事件的完整参考,请查看我们的 Bootstrap JS 滚动监听参考。