Bootstrap 5 Scrollspy

Scrollspy

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

如何创建 Scrollspy

下例展示如何创建 Scrollspy:

实例

<!-- 可滚动区域 -->
<body data-bs-spy="scroll" data-bs-target=".navbar" data-bs-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>

<!-- Section 1 -->
<div id="section1">
  <h1>Section 1</h1>
  <p>请尝试滚动此页面并在滚动时查看导航栏!</p>
</div>
...

</body>

亲自试一试

例子解释

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

然后添加 data-bs-target 属性,其值为 id 或导航栏的类名(.navbar)。这是为了确保导航栏与可滚动区域相连。

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

可选的 data-bs-offset 属性规定在计算滚动位置时从顶部偏移的像素数。当导航栏中的链接在跳转到可滚动元素时,如果您感觉过早更改了活动状态时,这很有用。默认值为 10 像素。

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