如何在动作滑落或滑动之后获取div高度?

问题描述:

代码在这里:jsfiddle Demo如何在动作滑落或滑动之后获取div高度?

我想拿到div#content高度,当它完成的slider down/up作用。

例如,在演示中,我输入一些的话,他们做的股利高度为36px,所以如果我点击slider down,我需要得到的价值36,如果我点击slider up,我需要返回值0。谢谢。

然后,但它在slideDownslideUp的回调函数,例如像:

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

Demo

注意它会给你同样的高度38在两种情况下slideDownslideUp,因为两个功能不改变div的高度属性,但只有display proprty from none to block,所以div #content的height属性在滑下之后是相同的。

+0

嘿,谢谢你的帮助,但'slideup'不工作,值应该是零,但现在仍然'36' – Giberno 2012-02-05 15:03:21

+0

@Giberno,它在我发布在我的答案的示例页面中工作。 – 2012-02-05 15:04:38

我知道这是一个旧的线程,但是当我搜索这个时候它首先出现,所以我假设其他人也会在这里登陆。

使用回调函数是我在动画完成后需要的值,但在我的用例中,我需要动画之前的高度,以便可以将另一个元素扩展到相同的高度。对于这一点,我做了以下内容:

//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(); 

因为JavaScript是单线程的,显示/隐藏从未呈现。