后浪云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
>
尝试一下 »