Complemento Bootstrap Affix (avanzado)
El complemento Afijo
El complemento Affix permite que un elemento se adhiera (bloquee) a un área de la página. Esto se usa a menudo con los menús de navegación o los botones de íconos sociales, para que se "peguen" en un área específica mientras se desplaza hacia arriba y hacia abajo en la página.
El complemento activa y desactiva este comportamiento (cambia el valor de
CSS position
a static
) fixed
, dependiendo de la posición de desplazamiento.
Ejemplo 1) Una barra de navegación adjunta:
Ejemplo 2) Una barra lateral adjunta:
Con Affix, cuando nos desplazamos hacia arriba y hacia abajo en la página, el menú siempre está visible y bloqueado en su posición.
Cómo crear un menú de navegación adjunto
El siguiente ejemplo muestra cómo crear un menú de navegación fijo horizontal:
Ejemplo
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
El siguiente ejemplo muestra cómo crear un menú de navegación adjunto vertical:
Ejemplo
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
Ejemplo explicado
Agregue data-spy="affix"
al elemento que desea adjuntar.
Opcionalmente, agregue el data-offset-top|bottom
atributo para calcular la posición del pergamino.
Cómo funciona
El complemento de afijo alterna entre tres clases: .affix
, .affix-top
y
.affix-bottom
. Cada clase representa un estado particular. Debe agregar propiedades CSS para manejar las posiciones reales, con la excepción de position:fixed
la .affix
clase.
- El complemento agrega la clase
.affix-top
o.affix-bottom
para indicar que el elemento está en su posición más alta o más baja. El posicionamiento con CSS no es necesario en este momento. - Desplazarse más allá del elemento adjunto activa la fijación real: aquí es donde el complemento reemplaza la clase
.affix-top
o.affix-bottom
con la.affix
clase (conjuntosposition:fixed
). En este punto, debe agregar el CSStop
o labottom
propiedad para colocar el elemento adjunto en la página. - Si se define un desplazamiento inferior, el desplazamiento más allá reemplaza la
.affix
clase con.affix-bottom
. Dado que las compensaciones son opcionales, configurar uno requiere que configure el CSS apropiado. En este caso, agregueposition:absolute
cuando sea necesario.
En el primer ejemplo anterior, el complemento Affix agrega la .affix
clase (posición: fija) al elemento <nav> cuando nos hemos desplazado 197 píxeles desde la parte superior. Si abre el ejemplo, también verá que agregamos la top
propiedad CSS con un valor de 0 a la .affix
clase. Esto es para asegurarse de que la barra de navegación permanezca en la parte superior de la página en todo momento, cuando nos hayamos desplazado 197 píxeles desde la parte superior.
Scrollspy y afijo
Usando el complemento Affix junto con el complemento Scrollspy :
Menú horizontal (barra de navegación)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
Menú vertical (Sidenav)
<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">
<nav class="col-sm-3" id="myScrollspy">
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
...
</nav>
</body>
Referencia completa del afijo Bootstrap
Para obtener una referencia completa de todos los métodos y eventos de afijos, vaya a nuestra Referencia de afijos JS de Bootstrap .