2012-02-05 9 views

Respuesta

4

Entonces, pero en la función de devolución de llamada de la slideDown o slideUp, por ejemplo, como:

$('#content').slideDown('slow', function(){ 
     var height = $(this).height(); 
    }); 

Demo

en cuenta que que le dará la misma altura 38 en los dos casos slideDown y slideUp, ya que las dos funciones no cambian la propiedad de altura del div, pero solo el display proprty desde none a block, por lo que la propiedad de altura de div #content es la misma después de deslizarse hacia abajo como su altura anterior.

+0

hey, gracias por una ayuda, pero 'slideup' no funciona, el valor debe ser cero, pero ahora todavía' 36' – Giberno

+0

@Giberno, Está trabajando en la página de ejemplo que publiqué en mi respuesta. –

1

Sé que este es un hilo viejo, pero salió primero cuando busqué esto, así que supongo que otros aterrizarán aquí también.

Usar la devolución de llamada es lo que hago si necesito el valor una vez completada la animación, pero en mi caso de uso, necesitaba la altura antes de la animación para poder expandir otro elemento a la misma altura. Para esto, hice lo siguiente:

//Get height (start and end) 
var startHeight = $el.height(); 
$el.show(); 
var endHeight = $el.height(); 
$el.hide(); 

/**Do something useful with the height here**/ 
$el2.animate({height: endHeight}); 

//Slide the element down 
$el.slideDown(); 

Dado que JavaScript tiene una sola hebra, el show/hide nunca se representa.

Cuestiones relacionadas