后浪云Bootstrap4教程:Bootstrap4 滚动监听(Scrollspy)

Bootstrap4 滚动监听(Scrollspy)

滚动监听(Scrollspy)插件,即自动更新导航插件,会根据滚动条的位置自动更新对应的导航目标。其基本的实现是随着您的滚动。

如何创建滚动监听

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

实例

<!--
可滚动区域
-->

<
body

data-spy
=
"
scroll
"

data-target
=
"
.navbar
"

data-offset
=
"
50
"
>

<!--
The navbar - The <a> elements are used to jump to a section in the scrollable area
-->

<
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
>

<!--
第一部分内容
-->

<
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" 才能起作用。

以下实例设置了垂直滚动监听:

实例

<
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
>
Try to scroll this page and look at the navigation list while scrolling!
</
p
>

</
div
>
...
</
div
>

</
div
>

</
div
>

</
body
>

尝试一下 »

THE END