Bootstrap CSS Actif de Navigation
Sur le Bootstrap site web de la subnav matches avec les sections et les changements de couleur de fond que vous ou faites défiler jusqu'à la section. J'ai voulu créer mon propre menu sans toutes les couleurs d'arrière-plan et tout et tout, cependant, j'ai modifié mon CSS pour être similaire, mais quand je scroll vers le bas ou cliquez sur le menu de l'élément de l'actif de la classe de ne pas basculer. Pas sûr de ce que je fais mal.
HTML:
<ul class="menu">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About Us</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
CSS:
.menu {list-style:none;}
.menu > li {float: left;}
.menu > li > a {color:#555;float: none;padding: 10px 16px 11px;display: block;}
.menu > li > a:hover {color: #F95700;}
.menu .active > a, .menu .active > a:hover {color:#F95700;}
J'ai vérifié les fichiers; jQuery, bootstrap.js et bootstrap.les css sont tous reliés correctement. Dois-je ajouter du jQuery ou suis-je manque un peu de CSS pour obtenir de l'actif de commutateur, comme le subnav menu sur leur site?
Vous devez vous connecter pour publier un commentaire.
Pour passer de la classe, vous devez effectuer certaines JavaScript.
En jQuery:
En JavaScript:
J'espère que cette aide.
$(document).ready(function() { // add code here } );
.not()
ne PAS retourner un booléen detrue
oufalse
. Maintenant, je vérifie si elle n'a pas la classe.C'est ce que j'ai depuis que vous avez à effacer les autres.
Home
àactive
, comment vous y prendriez-vous le maintien de la nouvelleli
comme actif lorsque le lien est cliqué, et la nouvelle page est en cours de chargement,j'.e sanspreventDefault()
.active
être appliqué à lali
s après avoir cliqué mais le lien ne change pas. Mais, si je supprimee.preventDefault();
lorsque je clique sur l'application duactive
à lali
mais dans un deuxième leactive
classe déplacer à la valeur par défaut, dans ce cas, le `<li class="active">Accueil</li>. Une idée? Merci.c'est mon code pour la manipulation de twitter bootstrap liste de navigation:
- Je utiliser 2 1-liners, en fonction de la façon dont ma nav est structuré
Juste assurez-vous qu'aucun de vos liens ont active de la classe de départ.
liens réels
Si votre nav liens sur des fichiers HTML (comme un modèle de mise en express.js qui dispose d'un menu), vous pouvez le faire:
de hachage liens
Si elles sont de tables de hachage, ce faire:
Si vous ne voulez pas de défilement sur le hachage-cliquez sur, return false:
/
en face de liens ou de modifier mes extraits de code pour inclure/
.$('ul.nav > li > a[href^="' + document.location.pathname + '"]')
que le sélecteur.Regarder quelques-unes des autres réponses, si vous voulez que la page web, faites défiler jusqu'à la section lorsqu'un menu est cliqué, alors vous ne voulez pas
preventDefault
.En outre, vous avez seulement besoin de supprimer l'actuelle classe active et en ajouter un nouveau pas rechercher à travers toutes les li. Vous aussi vous voulez le code pour ne pas faire n'importe quoi lors de l'élément de la liste que vous avez sélectionné est déjà actif—pas inutilement d'ajouter et de supprimer la même classe active. Enfin, vous devriez mettre votre écouteur d'événement sur un élément à ne pas la li comme il est plus facile de temps de déclenchement d'un événement de clic sur les iPhones et tablettes, etc. Pourrait également utiliser
.delegate
de sorte que vous n'avez pas à attendre pour un DOM prêt de l'événement. Donc à la fin je ferais quelque chose comme ça (je suppose que vous avez préchargé jQuery):Je suggère ce code :
C'est un travail comme un charme .
J'ai fait quelque chose de différent afin de résoudre ce (pour info, je suis un complet en html/css/js amateur).
Chacun de mes boutons de la barre de navigation passe à une nouvelle page. ainsi, dans chaque page html, j'ai mis quelque chose comme ça à la base:
Qui l'a obtenu le droit de travailler loin pour moi.
P. S. j'ai essayé la accepté de répondre, mais n'a pas de chance comme il serait également nécessaire de supprimer les "actifs" de la classe à partir de la touche vraiment "switch" plus de. Je suis sûr que c'est possible, mais encore une fois, je suis assez nouveau à ce genre de choses.
Testé et il fonctionne très bien.
toute personne ayant des problèmes avec cela à l'aide de jsp, de regarder vos paquets.
document.emplacement.chemin m'a donné: /nom_du_paquet/index.jsp
mais ma href dans ma barre de navigation appelé tout à l'index.jsp
Donc à modifier konsumer réponse:
J'ai essayé quelques-uns des meilleurs réponses ci-dessus, il travaille pour ".active" de la classe, mais les liens ne fonctionne pas bien, il reste encore sur la page en cours. Ensuite, j'ai essayé ceci:
Je l'ai trouvé ici: Twitter Bootstrap ajouter classe active à li
Ajouter à votre JavaScript:
C'est plus très jeune et regroupés avec les réponses, mais j'ai pris le haut de réponse et il fait mieux. La réponse sommet ne fonctionne que si il y a une sur la page. Cette étendues à la suppression active de
sibling
éléments et en l'ajoutant à celui sur lequel vous avez cliqué.J'ai également ajouté de la classe
nav-toggle
de sorte qu'il n'interfère pas avec les choses qui ont déjà bootstrap js ci-joint.