Bootstrap 滚动监听
🎯 概述
Bootstrap 滚动监听(Scrollspy)会根据滚动位置自动更新导航链接的激活状态。常用于单页网站的导航菜单。
📦 基本用法
html
<nav id="navbar" class="navbar navbar-light bg-light">
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link" href="#section1">第一节</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#section2">第二节</a>
</li>
</ul>
</nav>
<div data-bs-spy="scroll" data-bs-target="#navbar" data-bs-offset="0" class="scrollspy-example">
<h4 id="section1">第一节</h4>
<p>内容...</p>
<h4 id="section2">第二节</h4>
<p>内容...</p>
</div>💻 JavaScript API
javascript
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '#navbar',
offset: 10
});
// 刷新
scrollSpy.refresh();
// 销毁
scrollSpy.dispose();🌟 实际示例
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 滚动监听示例</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
.scrollspy-example {
position: relative;
height: 400px;
overflow-y: scroll;
}
</style>
</head>
<body>
<div class="container my-5">
<h1>Bootstrap 滚动监听示例</h1>
<nav id="navbar" class="navbar navbar-light bg-light">
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link" href="#section1">第一节</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#section2">第二节</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#section3">第三节</a>
</li>
</ul>
</nav>
<div data-bs-spy="scroll" data-bs-target="#navbar" data-bs-offset="0" class="scrollspy-example">
<h4 id="section1">第一节</h4>
<p>这是第一节的内容...</p>
<h4 id="section2">第二节</h4>
<p>这是第二节的内容...</p>
<h4 id="section3">第三节</h4>
<p>这是第三节的内容...</p>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>