J'ai été à jouer avec un menu de navigation jQuery, et je fait une maquette de celui-ci pour l'amour des exemples: http://jsfiddle.net/DerFlatulator6/3jYhh/1/jQuery .animate() « bascule »
J'avais un problème où il ferait assez bien exactement le contraire que je voulais faire. Mon code pour l'événement était en vol stationnaire comme celui-ci:
$(this)
.addClass('selected')
.children('ul')
.animate({'height': 'toggle'}, 300);
Après quelques bricolages, je suis venu avec cette
$(this)
.addClass('selected')
.children('ul')
.css('height', 'toggle')
.animate({'height': 'toggle'}, 300);
Ce qui fonctionne, mais je ne sais pas pourquoi! Quelqu'un peut-il expliquer exactement ce qui se passe? Une question secondaire ... Vous remarquerez que le violon a un menu à 3 niveaux, où le code est isolé pour les menus déroulants verticaux et horizontaux, serait-il possible d'écrire une fonction pour les couvrir tous les deux, ou devrais-je le laisser tel quel?
Alors, vous souhaitez que nous vous expliquions pourquoi votre code fonctionne? – adeneo
Je sais, ça a l'air idiot, mais je préfère savoir _why_ que ça marche, donc je peux améliorer mes connaissances en matière de connaissances, plutôt que de prendre pour acquis qu'il faut continuer. – azz
Eh bien, 'animate' toggle fait juste cela, bascule la valeur. Lors de la première utilisation de 'css()' pour mettre la hauteur à zéro, en utilisant également toggle, vous inversez l'effet de l'animation. – adeneo