1

有一个div (#content)带有10px填充的容器及其content (#inner_content)​​. 我正在通过ajax(新的 html 包含 a 中的所有内容#inner_content div)加载一些新内容,并将 # content'shtml 替换为新的 html。

这样做时,我希望容器div (#content)的高度通过动画调整到新内容的高度。所以我为容器 div 设置了溢出:隐藏,当我加载新内容时,我得到它的高度并将容器 div 设置为相同的高度。一切都很好,期望有时高度(10-20 pixels可能比需要的大一些,这给设计带来了麻烦。

所以我在动画完成后将.animate()容器的高度设置div为''(auto)的完整功能,以便高度正确。问题是完整的功能立即运行,动画被跳过并且高度立即变为自动。这是代码:

$("#content").html(response); 
$("#content").animate({height: $("#inner_content").height()+"px"}, 300, function () {
$("#content").css({height: ''});
});

我怎么解决这个问题?我需要执行动画,然后将高度设置为自动(这会导致进程中出现一个小的“间隙”,因为 div 立即缩短了 10-20 像素,但没关系。

4

1 回答 1

0

嗯,没有任何源代码很棘手,但我的直觉是,出于某种原因,你#content#inner_contentdivs 实际上是相同的高度(我猜是 0),这导致动画立即执行,从而立即触发事件也是。

你能提供任何来源吗?

我建议首先outerHeight()在分区上使用该方法,看看会发生什么。此外,请尝试关闭overflow: hidden并尝试以下伪代码:

  1. 在隐藏的单独加载新内容div
  2. 获取新内容的高度
  3. 动画当前内容
  4. 用新内容更新当前内容
于 2012-06-08T09:08:30.933 回答