Bootstrap JS 滚动监听
JS 滚动监听
Scrollspy 滚动监听用于根据滚动位置自动更新导航列表中的链接。
有关 滚动监听 的教程,请阅读我们的 Bootstrap 滚动监听教程。
通过 data-* 属性
将 data-spy="scroll"
添加到应该用作可滚动区域的元素(通常是 <body>
元素)。
然后使用导航栏的 id 或类名 (.navbar
) 的值添加 data-target
属性。这是为了确保导航栏与可滚动区域相连。
请注意,可滚动元素必须与导航栏列表项内的链接 ID 匹配
(<div id="section1">
匹配 <a href="#section1">
)。
可选的 data-offset
属性指定在计算滚动位置时从顶部偏移的像素数。当您觉得导航栏中的链接在跳转到可滚动元素时过早或过早更改活动状态时,这很有用。默认值为 10 像素。
需要相对定位: 带有 data-spy="scroll" 的元素需要 CSS position 位置属性,值为 "relative" 才能正常工作。
实例
<!-- 可滚动区域 -->
<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 class="nav-item">
<a class="nav-link" href="#section1">Section 1</a>
</li>
....
</ul>
</nav>
<!-- 第 1 节 -->
<div id="section1">
<h1>Section 1</h1>
<p>尝试滚动此页面并在滚动时查看导航栏!</p>
</div>
...
</body>
亲自试一试 »
通过 JavaScript
手动启用:
Scrollspy 滚动监听选项
选项可以通过数据属性或 JavaScript 传递。对于数据属性,将选项名称附加到 data-,如 data-offset="".
名称 | 类型 | 默认值 | 描述 | 试一试 |
---|---|---|---|---|
offset | number | 10 | 指定计算滚动位置时从顶部偏移的像素数 | 测试一下 |
Scrollspy 滚动监听方法
下表列出了所有可用的滚动监听方法。
方法 | 描述 |
---|---|
.scrollspy("refresh") | 在滚动监听中添加和删除元素时,可以使用此方法刷新文档 |
.scrollspy("dispose") | 摧毁滚动监听 |
滚动监听事件
下表列出了所有可用的滚动监听事件。
事件 | 描述 |
---|---|
activate.bs.scrollspy | 当滚动监听激活新项目时发生 |