1

我一直在阅读并试图解决这个问题,但我找不到解决方案。

我正在尝试获取一个 div 的高度,以更新另一个 div 的高度并制作很酷的 jQuery 动画。这一切都是由 ajax 请求触发的(可以正常工作)。

这是一个活生生的例子

我不知道如何获得 的高度#bigBox,因为它总是返回 0。

已编辑

所有的解决方案都有效,但它们并没有达到我的预期。我需要计算#bigBox淡出后的高度。

最后我设法做到了。

我将类更改.toToggle为 div #bigBox,而不是在它的父 div 中。这样做是为了避免父母蜂拥而至display: none;。现在相同的元素被隐藏了,所以它可以工作

这是最终的解决方案

谢谢你们!:D

4

2 回答 2

2

您在获取高度之前将其隐藏,因此当您获取高度时,它将为“0”。

试试这个:

var height = $("#bigBox").height();
$(".toToggle").fadeOut(600, "swing",function(){

    alert(height);

    $(".toToggle").fadeIn(500);
}); 

见小提琴

于 2013-03-10T18:40:03.380 回答
0

根据定义,隐藏元素没有高度。例如,您需要将其绝对定位并在屏幕外(见下文)、显示它、获取它的高度并再次隐藏它。

.offscreen { 显示:块;位置:绝对;左:-999em;}

更新:仔细查看您的演示后,为什么不在动画开始之前获取高度?

http://jsfiddle.net/97Xx5/5/

var height = $("#bigBox").height();

$(".toToggle").fadeOut(600, "swing", function () {
    alert(height);

    $(".toToggle").fadeIn(500);
});
于 2013-03-10T18:37:39.750 回答