Sticky
Rende un elemento della pagina costantemente visibile allo scorrere della pagina.
Talvolta è necessario che uno o più elementi della pagina restino sempre visibili anche quando essa viene fatta scorrere. Questo comportamento viene comunemente definito “sticky”.
Come funziona
Puoi usare l’attributo data-bs-toggle
con valore sticky
per attivare la funzionalità sull’elemento.
È disponibile una pagina di esempio dedicata a questa funzionalità per comprenderne appieno significato ed utilizzo.
Position fixed
Il componente assegna all’elemento la proprietà CSS position
con valore sticky
. Talvolta questo valore può causare dei problemi di posizionamento, soprattutto quando l’elemento varia in altezza quando diventa sticky. Per questo è possibile forzare il valore fixed
mediante l’attributo data-bs-position-type
.
Per facilitare il cambio di stile dell’elemento è possibile usare la proprietà data-bs-sticky-class-name
: mediante questa proprietà la classe CSS indicata verrà assegnata all’elemento quando diventa sticky e rimossa quando ritorna normale.
È disponibile una pagina di esempio dedicata a questa funzionalità per comprenderne appieno significato ed utilizzo.
Versione impilabile
Se sono presenti più componenti sticky nella pagina, è possibile fare in modo che si impilino l’uno sull’altro utilizzando l’attributo data-bs-stackable
È disponibile una pagina di esempio dedicata a questa funzionalità per comprenderne appieno significato ed utilizzo.
Attivazione tramite target
È possibile attivare la funzionalità quando un particolare elemento interno esce dal viewport della pagina.
In tal caso è necessario utilizzare l’attributo data-bs-target
.
È disponibile una pagina di esempio dedicata a questa funzionalità per comprenderne appieno significato ed utilizzo.
Attivazione tramite JavaScript
È possibile creare un’istanza con il constructor, ad esempio:
var stickyElement = document.getElementById('sticky')
var sticky = new bootstrap.Sticky(stickyElement, {
positionType: 'sticky',
stickyClassName: 'is-sticky',
stackable: true,
paddingTop: 0,
})
Opzioni
Le opzioni possono essere passate tramite gli attributi data o tramite JavaScript. Per quanto riguarda gli attributi data, aggiungi il nome dell’opzione a data-bs
, come in data-bs-position-type=""
.
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
positionType | string | sticky | Indica il valore della proprietà CSS `position`. I valori ammessi sono `sticky` o `fixed` |
stickyClassName | string | Classe CSS da applicare all'elemento quando viene attivata la funzionalità sticky | |
stackable | boolean | false | Attiva/disattiva la possibilità di rendere l'elemento impilabile su altri elementi sticky presenti in pagina |
paddingTop | number | 0 | Indica la distanza dall'elemento in sticky dal margine superiore del viewport |
Metodi
Metodo | Descrizione |
---|---|
dispose | Elimina la funzionalità sticky dell'elemento. |
getInstance | Metodo statico che restituisce l'istanza Sticky associata ad un elemento del DOM. Esempio: bootstrap.Sticky.getInstance(element) |
getOrCreateInstance | Metodo statico che restituisce un'istanza Sticky associata ad un elemento del DOM o ne crea una nuova nel caso non fosse stata inizializzata. Esempio: bootstrap.Sticky.getOrCreateInstance(element) |
Eventi
La classe Sticky
di Bootstrap espone alcuni eventi per agganciare comportamenti alla funzionalità di apertura/chiusura attraverso JavaScript.
Tipo di evento | Descrizione |
---|---|
on.bs.sticky | Questo evento si attiva immediatamente quando l'elemento è reso sticky. |
off.bs.sticky | Questo evento viene attivato quando l'elemento . |
var stickyElement = document.getElementById('sticky')
stickyElement.addEventListener('on.bs.sticky', function () {
// do something...
})