Bootstrap:滾動監聽Scrollspy(實作)

滾動監聽(Scrollspy)插件,即自動更新導航插件,會根據滾動條的位置自動更新對應的導航目標。其基本的實現是隨著您的滾動,基於滾動條的位置嚮導航欄添加.active class。

使用方法

向頂部導航添加滾動監聽行為:

通過data屬性:向您想要監聽的元素(通常是body)添加data-spy=“scroll”。然後添加帶有Bootstrap .nav組件的父元素的ID或class的屬性data-target。為了它能正常工作,您必須確保頁面主體中有匹配所要監聽鏈接的ID的元素存在。

1
2
3
4
5
6
7
8
9
<body data-spy =“ scroll” data-target =“main-nav”>
...
<div class =“ navbar-example”>
<ul class =“ nav nav-tabs”>
...
</ ul>
</ div>
...
</ body>

通過JavaScript:您可以通過JavaScript調用滾動監聽,選取要監聽的元素,然後調用.scrollspy()函數:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

//Init Scrollspy
$('body').scrollspy({ target:'#main-nav'});

//Smooth Scrolling
$('#main-nav a').on('click',function(event){
if(this.hash !==""){
event.preventDefault();
const hash = this.hash;
$('html,body').animate({
scrollTop: $(hash).offset().top
}, 700, function(){
window.location.hash = hash;
})
}
})

實作

Nav監聽: 一頁式官網