【发布时间】:2012-02-27 08:02:04
【问题描述】:
这里的代码:jsfiddle Demo
我想在它完成slider down/up的动作时得到div#content的高度。
例如,在demo中,我输入了一些文字,它们使div高度为36px,所以如果我点击slider down,我需要得到值36,如果我点击slider up,我需要返回值0。谢谢。
【问题讨论】:
这里的代码:jsfiddle Demo
我想在它完成slider down/up的动作时得到div#content的高度。
例如,在demo中,我输入了一些文字,它们使div高度为36px,所以如果我点击slider down,我需要得到值36,如果我点击slider up,我需要返回值0。谢谢。
【问题讨论】:
那么,不过是在slideDown或slideUp的回调函数中,比如像:
$('#content').slideDown('slow', function(){
var height = $(this).height();
});
请注意在slideDown 和slideUp 这两种情况下,它会为您提供相同的高度 38,因为这两个函数不会更改div,但只有从none到block的display属性,所以div#content的高度属性在向下滑动后与它的高度相同之前。
【讨论】:
slideup不起作用,值应该为零,但现在还是36
我知道这是一个旧线程,但是当我搜索它时它首先出现,所以我认为其他人也会登陆这里。
如果我需要动画完成后的值,我会使用回调,但在我的用例中,我需要动画之前的高度,因此我可以将另一个元素扩展到相同的高度。为此,我做了以下工作:
//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 是单线程的,所以永远不会呈现显示/隐藏。
【讨论】: