我正在为类似于 sublime text 的代码折叠的表单开发一些折叠功能。我希望能够在 20px 和 div 的全高之间进行动画处理。我尝试做el.animate({'height':'20px'});
then el.slideUp();
,但如果高度已经设置,jQuery 不会滑动元素。
有没有一种简单的方法可以用 jQuery 做到这一点,当你这样做时,jQuery 是如何知道将高度设置为动画的.slideDown()
?
我正在为类似于 sublime text 的代码折叠的表单开发一些折叠功能。我希望能够在 20px 和 div 的全高之间进行动画处理。我尝试做el.animate({'height':'20px'});
then el.slideUp();
,但如果高度已经设置,jQuery 不会滑动元素。
有没有一种简单的方法可以用 jQuery 做到这一点,当你这样做时,jQuery 是如何知道将高度设置为动画的.slideDown()
?
您可以使用"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 })