2010-04-21 2 views
0

J'ai un script qui anime un élément comme suit:Existe-t-il un moyen d'obtenir la valeur finale d'une animation dans jQuery?

var item_height = $('#item').height(); 
$('#item').height(0); 

$('#item').animate({ height: item_height }); 

Supposons maintenant l'animation doit être arrêté avant qu'il ne soit terminé:

$('#item').stop(); 

Comment puis-je obtenir la valeur finale de l'animation ? (La hauteur totale de l'élément lorsque l'animation aurait été complète)

Répondre

1

Vous pouvez utiliser .stop(true,true) pour effacer la file d'attente d'animation et automatiquement « saut à la fin » de l'animation (au lieu de simplement arrêter dans sa ligne)

Vous pouvez également enregistrer la valeur que vous souhaitez plus tard en utilisant .data():

var $item = $('#item'); // rather than query 3 times, just save this 
var item_height = $item.height(); 
$item.data('origHeight', item_height); 
$item.height(0); 

$item.animate({ height: item_height }); 

// later 
$item.stop(); 
$item.height($item.data('origHeight')); 
+0

Hmmm ... c'est un très bon point. Je n'avais pas vu qu'il y avait des paramètres que vous pouviez passer à 'stop()' –

0

Je pense que je l'ai compris. Une autre question similaire a été postée et la réponse qui a aidé est here.

N'hésitez pas à fermer cette question en dupe.