动作滑块向下或向上滑动后如何获得div高度?

时间:2012-02-05 14:36:10

标签: jquery height

此处代码:jsfiddle Demo

我想在完成div#content的操作时获得slider down/up高度。

例如,在演示中,我输入了一些单词,它们使div高度为36px,所以如果我点击slider down,我需要获取值36,如果我点击slider up,我需要返回值0。谢谢。

2 个答案:

答案 0 :(得分:4)

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

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

Demo

请注意它会在slideDownslideUp两种情况下为您提供相同的高度38,因为这两个函数不会更改div 的高度属性,但displaynone只有 block proprty ,所以div {{1}滑落后的高度属性与之前的高度相同。

答案 1 :(得分:1)

我知道这是一个老线程,但是当我搜索这个时它首先出现,所以我认为其他人也会降落在这里。

如果在动画完成后需要值,我会使用回调,但在我的用例中,我需要动画前的高度,所以我可以将另一个元素扩展到相同的高度。为此,我做了以下事情:

//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是单线程的,因此永远不会呈现show / hide。