2010-08-10 3 views
3

Je dois arrêter l'animation et compléter instantanément toutes les animations en attente.
stop ne fonctionne pas:
Disons que je animation qui se déplace élément qui est 0px par 100px et je l'utilise arrêt quand il a déménagé seulement 50px. Le résultat sera un élément au 50px. Le résultat que je veux est quand j'interromps l'animation, même si l'élément est à 50px il sautera immédiatement à 100px.
Comment est-ce que je fais cela?Achèvement immédiat de la file d'animation dans jQuery

Répondre

1

$.fn.stop() a l'option d'effacer la file d'attente et de passer à la fin.

Il suffit de faire quelque chose comme: $('#foo').stop(true, true);

+0

Cela ne fonctionne pas quand j'ai plusieurs animations en file d'attente, il saute seulement à la fin de la première et rejette le reste. – Dani

+1

C'est parce que votre sélecteur est trop spécifique. Dites qu'il y a 3 divs sur la page, # div-1, # div-2, # div-3. # div-1 et # div-2 sont au milieu d'une animation quand vous voulez les arrêter pour que vous puissiez animer # div-3, ou peu importe. Pour arrêter les animations en file d'attente, vous devez: $ ('# div-1, # div-2'). Stop (true, true); Pour arrêter toutes les animations sur la page, vous pouvez essayer: $ ('*'). Stop (true, true); – m4olivei

0

Spécifiez manuellement le dernier état, ne soyez pas paresseux. Je suis sûr que vous pouvez le faire :)

$('#foo').stop(true, true); 
$('#foo').css({x, '100px'});