2009-05-19 6 views
3

Je simple liste non ordonnée avec des éléments de liste comme élément de menu i a créé le jquery juste pour avoir un effet de retournement drôle être:menu simple jquery capotage (sans file d'attente d'animation)

$('#nav ul ul li').hover(function(){ 
$(this).animate({ 
     marginLeft: "20px", 
     }, 300); 
}, function(){ 
$(this).animate({ 
     marginLeft: "0px", 
     }, 300); 
}); 

le problème Avec ce script, si vous dépassez plusieurs fois le menu, une file d'attente d'animation se crée. J'ai essayé d'utiliser .stop() entre les deux, mais il arrête également les animations des autres éléments de la liste qui devraient revenir à l'état par défaut dans tous les cas. y at-il un moyen d'arrêter() la file d'attente par élément? mais pas pour toute la liste?

Répondre

3

Je ne vois pas pourquoi $ (this) .stop() .animate (...) ne fonctionne pas pour vous, mais vous pouvez aussi essayer cette approche:

$(":not(:animated)", this).animate(...) 

qui sera ne déclenche l'animation que sur les éléments qui ne sont pas actuellement animés

+1

où ajouteriez-vous l'arrêt() alors? parce que ce que j'ai avec des arrêts, c'est que si vous vous précipitez sur toute la liste, le 10ème élément utilise par exemple stop puis anime son chemin à 20 pixels vers la droite, mais l'arrêt empêche les éléments précédents 1 - 9 de revenir à l'état par défaut . 20 pixels à gauche. – Sander

+0

uuhm, Sander je ne suis pas sûr que je comprends le problème exact que vous avez, pourriez-vous s'il vous plaît poster votre js/html en ligne http://jsbin.com – duckyflip

+0

hm, je viens de réaliser mon erreur j'ai ajouté le .stop () @ la fin, après l'animation. Je l'ai utilisé comme vous (avant) et cela semble fonctionner correctement. grâce oui le résultat peut être vu @ www.komtuveu.be (menu de gauche) bien que ce soit tout simple liste ol html avec du texte, maintenant je peux le style et ajouter l'image. Merci – Sander