Bootstrap5 Scrollspy

El complemento Scrollspy, es decir, el complemento de navegación de actualización automática, actualiza automáticamente el objetivo de navegación correspondiente según la posición de la barra de desplazamiento. Su implementación básica es a medida que usted se desplaza.


Cómo crear Scrollspy

El siguiente ejemplo demuestra cómo crear Scrollspy:

Ejemplo

<!--Área desplazable--> <body data-bs-spy="scroll" data-bs-target=".navbar" data-bs-offset="50"> <!--Barra de navegación: los elementos <a> se utilizan para saltar al área de desplazamiento especificada.--> <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>

Pruébalo »

Análisis del ejemplo

Agregue al elemento que desea monitorear (generalmente body)data-bs-spy="scroll" 。

Luego agreguedata-bs-targetel atributo, cuyo valor es el id o class de la barra de navegación (.navbar). De esta manera, se puede conectar con el área desplazable.

Nota: el id en el elemento desplazable (<div id="section1">) debe coincidir con las opciones de enlace de la barra de navegación (<a href="../index.html">).

Opcionaldata-bs-offsetel atributo se utiliza para calcular el desplazamiento en píxeles desde la parte superior al calcular la posición de desplazamiento. El valor predeterminado es 10 px.

Configurar posicionamiento relativo:Los elementos que usandata-spy="scroll"deben tener su CSSpositionpropiedad establecida en"relative"para que funcione.

El siguiente ejemplo configura un Scrollspy vertical:

Ejemplo

<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>

Pruébalo »

Forma de grupo de lista:

Ejemplo

<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>

Pruébalo »
Otras extensiones