我正在做一个简单的ajax加载以拉入搜索结果并在div中显示它们:

$('#myDiv').load('update.php?id=123', function() {
   //callback here
});

一切正常,并且div按预期进行了更新。 “myDiv”是缩小还是增长,取决于返回的结果数。

如何为成长/收缩设置动画?

我知道我可以slideUp/slideDown或显示/隐藏例如
$('#myDiv').slideUp('fast').load('update.php?id=123', function() {
   $('#myDiv').slideDown('fast');
});

但是,我不想先缩小或隐藏它-我希望高度从ajax加载之前的值到ajax加载之后的值。

这可能吗?

最佳答案

首先,您需要停止自动调整大小。

var $mydiv = $('#myDiv');
$mydiv.css('height', $mydiv.height() );

然后,一旦加载完成,我们会将内容包装在div中,然后使用它重新计算高度。
$mydiv.load('update.php?id=123', function() {
   $(this).wrapInner('<div/>');
   var newheight = $('div:first',this).height();
   $(this).animate( {height: newheight} );
});

Demo

关于jQuery在Ajax加载时使div高度变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4085800/

10-11 12:41