L’elemento Navscroll presenta liste di link con ancore a sezioni della pagina in cui è contenuto.
Layout della Navscroll
Il componente Navscroll è una declinazione del componente Navbar <nav class="navbar navbar-expand-lg"> con l’aggiunta della classe .it-navscroll-wrapper e dell’attributo data-bs-navscroll.
Nella sua versione mobile, la navigazione viene collassata all’interno di un menu, posizionabile a inizio o fine viewport.
Per posizionare tale menu in alto, è sufficiente aggiungere al tag <nav> la classe .it-top-navscroll. Al contrario, per posizionare il menu in basso, è sufficiente aggiungere la classe .it-bottom-navscroll.
La Navscroll può avere una linea-separatore a destra o a sinistra dell’elemento. Si ottiene aggiungendo al tag <nav> la classe .it-left-side per ottenere una linea a sinistra, e .it-right-side per ottenere una linea a destra.
Ogni link all’interno della Navscroll contiene l’attributo href con il valore dell’id relativo all’elemento correlato in pagina: href="#idElemento".
Per fare in modo che la voce di menu sia evidenziata automaticamente durante lo scorrimento della pagina, è sufficiente aggiungere alle sezioni corrispondenti alle voci di menu (#idElemento), una classe .it-page-section, e racchiudere le sezioni in un elemento con classe .it-page-sections-container.
Le animazioni sono state realizzate con il plugin javascript AnimeJs.
Posizionamento a fondo pagina con linea a sinistra
In questo esempio, la linea che limita la barra di navigazione è posizionata a sinistra. Su dispositivi con schermi a dimensione inferiore a 992px, la barra che permette di aprire la navigazione si sposterà in basso nella pagina.
Posizionamento in testa alla pagina con linea a destra
In questo esempio, la linea che limita la barra di navigazione è posizionata a destra. Su dispositivi con schermi a dimensione inferiore a 992px, la barra che permette di aprire la navigazione si sposterà in alto nella pagina.
La Navscroll può mostrare una barra di avanzamento dello scorrimento del contenuto. Per farlo utilizzare il componente Progress Bar, aggiungendo la classe .it-navscroll-progressbar all’elemento .progress-bar. Il contenuto a cui si riferisce l’avanzamento dello scorrimento è relativo all’elemento .it-page-sections-container.
<navclass="inline-menu"><divclass="link-list-wrapper"><ulclass="link-list"><li><aclass="list-item large medium right-icon"href="#collapseOne"role="button"data-bs-toggle="collapse"aria-expanded="false"aria-controls="collapseOne"><spanclass="list-item-title-icon-wrapper"><span>Link lista 1</span><svgclass="icon icon-xs icon-primary right"><usehref="/bootstrap-italia/dist/svg/sprites.svg#it-expand"></use></svg></span></a><ulclass="link-sublist collapse"id="collapseOne"><li><aclass="list-item"href="#"><span>Link lista 1.1</span></a></li><li><aclass="list-item"href="#"><span>Link lista 1.2</span></a></li><li><aclass="list-item"href="#"><span>Link lista 1.3</span></a></li></ul></li><li><aclass="list-item large medium right-icon"href="#collapseTwo"role="button"data-bs-toggle="collapse"aria-expanded="false"aria-controls="collapseTwo"><spanclass="list-item-title-icon-wrapper"><span>Link lista 2</span><svgclass="icon icon-xs icon-primary right"><usehref="/bootstrap-italia/dist/svg/sprites.svg#it-expand"></use></svg></span></a><ulclass="link-sublist collapse"id="collapseTwo"><li><aclass="list-item"href="#"><span>Link lista 2.1</span></a></li><li><aclass="list-item"href="#"><span>Link lista 2.2</span></a></li><li><aclass="list-item"href="#"><span>Link lista 2.3</span></a></li></ul></li><li><aclass="list-item large medium right-icon"href="#collapseThree"role="button"data-bs-toggle="collapse"aria-expanded="false"aria-controls="collapseThree"><spanclass="list-item-title-icon-wrapper"><span>Link lista 3</span><svgclass="icon icon-xs icon-primary right"><usehref="/bootstrap-italia/dist/svg/sprites.svg#it-expand"></use></svg></span></a><ulclass="link-sublist collapse"id="collapseThree"><li><aclass="list-item"href="#"><span>Link lista 3.1</span></a></li><li><aclass="list-item"href="#"><span>Link lista 3.2</span></a></li><li><aclass="list-item"href="#"><span>Link lista 3.3</span></a></li></ul></li></ul></div></nav>
Attivazione tramite codice
Nel caso in cui si desidera che il componente sia inizializzato in maniera automatica
utilizzare l’attributo data-bs-toggle specifico per la sua inizializzazione.
Nel caso in cui si desidera importare e inizializzare autonomamente il componente
l’attributo data-bs-toggle specifico non deve essere incluso così da evitare
inizializzazioni automatiche che possono portare a comportamenti inaspettati.
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-parent="".
Nome
Tipo
Predefinito
Descrizione
scrollPadding
number | function
10
Uno spazio (in pixel) per consentire allo scroll di fermarsi prima o dopo (se viene fornito un valore negativo) rispetto alla posizione del bersaglio. Nel caso in cui ci siano degli elementi fixed dinamici è possibile fornire una funzione per calcolare di volta in volta lo spazio.
duration
number
800
Durata dell'animazione di scroll espressa in millisecondi.
Metodo statico che consente di ottenere l'istanza di avviso associata a un elemento DOM, è possibile utilizzarlo in questo modo: NavScroll.getInstance(domElement).
getOrCreateInstance
Metodo statico che restituisce un'istanza di avviso associata a un elemento DOM o ne crea una nuova nel caso in cui non fosse stata inizializzata. Puoi utilizzarla in questo modo: NavScroll.getOrCreateInstance(element).
dispose
Rimuove la funzionalità NavScroll.
setScrollPadding
Modfica il valore dell'opzione scrollPadding.
Breaking change
Spostato il pulsante “Indietro” come primo elemento della struttura interna di .menu-wrapper.
Inoltre, la versione mobile o a forte ingrandimento del componente, che si basa sulla navbar presente anche nei componenti Header e Megamenu, è stata reimplementata come modale per migliorare l’accessibilità con le combinazioni principali di lettori di schermo, sistema operativo e browser. Modifiche principali:
struttura: la navbar ora utilizza un pattern dialog con backdrop
gerarchia visiva: la gestione z-index è allineata al componente modale
gestione del focus: implementato focus-trap.js per utenti da tastiera e lettori di schermo, e gestione inert
il comportamento è diverso se implementata dentro o fuori dall’elemento main di pagina (se presente)
Se hai personalizzato il CSS della navbar, rivedi le tue modifiche per verificarne la compatibilità. Se hai modificato il comportamento JavaScript in, assicurati che funzioni con il nuovo pattern dialog. Testa la tua implementazione con lettori di schermo e con utenti per verificarne l’accessibilità.
Gli elementi con classe .it-back-button diventano di tipo <button> invece di <a>.
Gli elementi di tipo <a> dei collapse necessitano l’aggiunta dell’attributo role="button".