Skip to content

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>

下一步

下一章:Bootstrap 侧边栏导航 →