2012-09-02 6 views
1

J'essaye d'animer un menu et de faire glisser les choses vers la droite sur mouseover. Y at-il un moyen facile de défaire tout mouseover fait quand mouseout? J'ai tous les éléments de menu (de mon menu vertical) glisser vers la droite et avoir une nouvelle diapositive div vide à la place de ces éléments de menu, qui devient alors rempli de contenu, une fois qu'il est en place ... c'est à dire multiple instances de animate().Annulation d'une fonction jQuery

+0

Avez-vous essayé exécuter la même animation en sens inverse? Ou vos effets sont-ils plus compliqués qu'une seule diapositive? –

+0

Probablement. Qu'est-ce qui devrait être défait? –

+0

Voulez-vous dire 'toggle'? –

Répondre

1

Je pense que vous cherchez quelque chose comme fonction .stop: http://api.jquery.com/stop/

Et probablement que vous voulez faire quelque chose comme ceci:

$(el).hover(function() { 
    $(this).stop().animate(...); 
}, function() { 
    $(this).stop().animate(...); 
}); 

Exemple:http://jsfiddle.net/VjKLe/

+0

Sort of. Cela nécessite que je redéfinisse explicitement la hauteur ... Pour environ 15 éléments, dont je ne connais que la hauteur en em. J'espérais que jQuery aurait pu comprendre tout cela automatiquement ... –

+0

Voulez-vous dire stocker toutes les informations dans les variables, puis rappeler cette information pour la deuxième instance de function()? –

+0

Faire cette astuce 15 fois me donne ce que je veux, je pensais juste qu'il pourrait y avoir un moyen plus facile déjà dans la bibliothèque jQuery ... De toute façon, je ne savais pas de hover et d'arrêter, ce qui améliore considérablement mon code. Merci! –

Questions connexes