Bootstrap5 Barra lateral de navegación (Offcanvas)

La barra lateral de Bootstrap5 es similar a un modal y se usa con frecuencia en dispositivos móviles.

Crear navegación deslizante

Podemos usar JavaScript para configurar si se.offcanvasagrega después de la clase.showla clase, controlando así la visibilidad de la barra lateral:

  • .offcanvasOcultar contenido (por defecto)
  • .offcanvas.showMostrar contenido

Puede usar el enlace <a> con suhrefatributo, o el elemento <button> usandodata-bs-targetel atributo para establecer la barra lateral. En ambos casos se necesita usardata-bs-toggle="offcanvas"。

A continuación, un ejemplo de creación de navegación deslizante:

Ejemplo

<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">Usar el atributo href del enlace</a> <button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">Usar data-bs-target en el botón</button> <div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasExampleLabel">Barra lateral</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div> Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc. </div> <div class="dropdown mt-3"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown"> Dropdown button </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </div> </div> </div>

Pruébalo »

Dirección de la barra lateral

Puede controlar la dirección de la barra lateral con las siguientes cuatro clases:

  • .offcanvas-startSe muestra a la izquierda, como en el ejemplo anterior.
  • .offcanvas-endSe muestra a la derecha
  • .offcanvas-topSe muestra en la parte superior
  • .offcanvas-bottomSe muestra en la parte inferior

Ejemplo

<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Barra de navegación superior</button> <div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel"> <div class="offcanvas-header"> <h5 id="offcanvasTopLabel">Se muestra en la barra de navegación superior</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> ... </div> </div>

Pruébalo »

Ejemplo

<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Barra lateral derecha</button> <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel"> <div class="offcanvas-header"> <h5 id="offcanvasRightLabel">Se muestra en la barra lateral derecha</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> ... </div> </div>

Pruébalo »

Ejemplo

<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Barra de navegación inferior</button> <div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasBottomLabel">Se muestra en la barra de navegación inferior</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body small"> ... </div> </div>

Pruébalo »

Configurar el fondo y si el fondo puede desplazarse

Podemos configurar, al mostrar la barra lateral, si el<body>elemento puede desplazarse, y también si se muestra un lienzo de fondo. Usedata-bs-scrollel atributo para configurar si el<body>elemento puede desplazarse,data-bs-backdroppara alternar si se muestra el lienzo de fondo.

Ejemplo

<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">El elemento body puede desplazarse</button> <button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBackdrop" aria-controls="offcanvasWithBackdrop">Mostrar lienzo (por defecto)</button> <button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Permitir desplazamiento y mostrar lienzo</button> <div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasScrollingLabel">El contenido del cuerpo puede desplazarse</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <p>Desplázate por la página para ver el efecto.</p> </div> </div> <div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasWithBackdrop" aria-labelledby="offcanvasWithBackdropLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasWithBackdropLabel">Usar lienzo de fondo</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <p>El contenido del cuerpo no se puede desplazar</p> </div> </div> <div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">Usar lienzo de fondo, el contenido del cuerpo puede desplazarse</h5> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <p>Desplázate por la página para ver el efecto.</p> </div> </div>

Pruébalo »

Caso de barra lateral

Ejemplo


Pruébalo »
Otras extensiones