2

我正在为类似于 sublime text 的代码折叠的表单开发一些折叠功能。我希望能够在 20px 和 div 的全高之间进行动画处理。我尝试做el.animate({'height':'20px'});then el.slideUp();,但如果高度已经设置,jQuery 不会滑动元素。

有没有一种简单的方法可以用 jQuery 做到这一点,当你这样做时,jQuery 是如何知道将高度设置为动画的.slideDown()

4

1 回答 1

2

您可以使用"display: block"获得元素的完整高度;

所以如果你有一个隐藏的元素,你可以将它的位置设置为absolute,将它定位在屏幕之外并抓住它的尺寸,如下所示:

$('#el').css('position', 'absolute').css('left', '99999px').css('display', 'block');
var h = $('#el').height();
$('#el').css('position', 'relative').css('display', 'none');

至于您的问题,请在动画完成后检查您是否正在滑动。采用:

el.animate({'height':'20px'}, delay, function() { slide here })
于 2012-05-22T06:47:17.063 回答