Vous n'avez pas à ajouter de javascript supplémentaire à ce qui est déjà inclus avec l'option collapse de bootstraps. Il vous suffit d'inclure les sélecteurs data-toggle et data-target dans les éléments de votre liste de menus, comme vous le faites pour le bouton navbar-toggle. Ainsi, pour votre élément de menu "Produits", cela ressemblerait à ceci
<li><a href="#Products" data-toggle="collapse" data-target=".navbar-collapse">Products</a></li>
Vous devrez alors répéter les sélecteurs data-toggle et data-target pour chaque élément de menu.
EDIT ! !! Afin de résoudre les problèmes de débordement et de scintillement, j'ai ajouté du code supplémentaire qui résoudra ce problème sans avoir de javascript supplémentaire. Voici le nouveau code :
<li><a href="#products" class="hidden-xs">Products</a></li>
<li><a href="#products" class="visible-xs" data-toggle="collapse" data-target=".navbar-collapse">Products</a></li>
Le voici au travail http://jsfiddle.net/jaketaylor/84mqazgq/
Cela rendra vos sélecteurs de bascule et de cible spécifiques à la taille de l'écran et éliminera les problèmes sur le grand menu. Si quelqu'un a encore des problèmes avec les glitches, faites-le moi savoir et je trouverai une solution. Merci
EDIT : Dans le bootstrap v4.1.3 & v5.0 je ne pouvais pas utiliser les classes visible/caché. Au lieu de hidden-xs
utiliser d-none d-sm-block
et au lieu de visible-xs
utiliser d-block d-sm-none
.
EDIT : Dans bootstrap v5, au lieu de data-toggle
utiliser data-bs-toggle
et au lieu de data-target
utiliser data-bs-target
.