Bootstrap5 スクロールスパイ(Scrollspy)

スクロールスパイ(Scrollspy)プラグインは、自動更新ナビゲーションプラグインです。スクロールバーの位置に応じて、対応するナビゲーションターゲットを自動的に更新します。基本的な実装は、スクロールに伴って動作します。


スクロールスパイの作成方法

以下の例では、スクロールスパイの作成方法を示しています:

例

<!--スクロール可能な領域--> <body data-bs-spy="scroll" data-bs-target=".navbar" data-bs-offset="50"> <!--ナビゲーションバー - <a> 要素は、指定されたスクロール領域にジャンプするために使用されます--> <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> <!-- Section 1 --> <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-bs-spy="scroll" 。

次に追加しますdata-bs-target属性。その値はナビゲーションバーの id または class です(.navbar)。これにより、スクロール可能な領域に関連付けることができます。

スクロール可能な項目要素の id に注意してください(<div id="section1">)は、ナビゲーションバーのリンクオプションと一致している必要があります(<a href="../index.html">)。

オプションdata-bs-offset属性は、スクロール位置を計算する際に、上部からのオフセットピクセルを指定します。デフォルトは 10 px です。

相対配置を設定する:使用するdata-spy="scroll"の要素は、その CSSpositionプロパティを設定することで"relative"機能するようになります。

以下の例では、垂直スクロールスパイを設定しています:

例

<div class="row"> <div class="col-4"> <nav id="navbar-example3" class="navbar navbar-light bg-light flex-column align-items-stretch p-3"> <a class="navbar-brand" href="#">Navbar</a> <nav class="nav nav-pills flex-column"> <a class="nav-link" href="#item-1">Item 1</a> <nav class="nav nav-pills flex-column"> <a class="nav-link ms-3 my-1" href="#item-1-1">Item 1-1</a> <a class="nav-link ms-3 my-1" href="#item-1-2">Item 1-2</a> </nav> <a class="nav-link" href="#item-2">Item 2</a> <a class="nav-link active" href="#item-3">Item 3</a> <nav class="nav nav-pills flex-column"> <a class="nav-link ms-3 my-1" href="#item-3-1">Item 3-1</a> <a class="nav-link ms-3 my-1 active" href="#item-3-2">Item 3-2</a> </nav> </nav> </nav> </div> <div class="col-8"> <div data-bs-spy="scroll" data-bs-target="#navbar-example3" data-bs-offset="0" class="scrollspy-example-2" tabindex="0"> <h4 id="item-1">Item 1</h4> <p>...</p> <h5 id="item-1-1">Item 1-1</h5> <p>...</p> <h5 id="item-1-2">Item 1-2</h5> <p>...</p> <h4 id="item-2">Item 2</h4> <p>...</p> <h4 id="item-3">Item 3</h4> <p>...</p> <h5 id="item-3-1">Item 3-1</h5> <p>...</p> <h5 id="item-3-2">Item 3-2</h5> <p>...</p> </div> </div> </div>

試してみる »

リストグループ形式:

例

<div id="list-example" class="list-group"> <a class="list-group-item list-group-item-action" href="#list-item-1">Item 1</a> <a class="list-group-item list-group-item-action" href="#list-item-2">Item 2</a> <a class="list-group-item list-group-item-action" href="#list-item-3">Item 3</a> <a class="list-group-item list-group-item-action" href="#list-item-4">Item 4</a> </div> <div data-bs-spy="scroll" data-bs-target="#list-example" data-bs-offset="0" class="scrollspy-example" tabindex="0"> <h4 id="list-item-1">Item 1</h4> <p>...</p> <h4 id="list-item-2">Item 2</h4> <p>...</p> <h4 id="list-item-3">Item 3</h4> <p>...</p> <h4 id="list-item-4">Item 4</h4> <p>...</p> </div>

試してみる »
その他の拡張機能