1

我给了一个div这个代码

min-width: 200px;
width: auto;
transition: all 2s;
-webkit-transition: all 2s;

当我使用 jQuery append 向这个 div 添加更多文本时,为什么 div 没有动画到新的高度?

这在css3中可能吗?
编辑
这是一个绝对的 div,可能会有所不同

4

4 回答 4

2

我认为问题在于,高度属性设置为“自动”并且它保持在“自动”状态。所以没有从一种状态到另一种状态的过渡。也许您必须设置一个绝对高度并为每个附加文本添加一些像素到 css 高度属性。

于 2013-10-09T20:15:47.177 回答
1

CSS3 过渡只能height“长度、百分比或计算”值启用。如果您想在 CSS3 中执行此操作,则需要显式设置或计算高度。否则,您将需要使用 jQuery 对其进行动画处理,例如:

var old = $el.css('height');
$el.css('height', '');
$el.append('text');
var newH = $el.innerHeight();
$el.css('height', old);
if(old != newH)
    $el.animate({'height': newH}, 'fast');
于 2013-10-09T20:24:03.197 回答
0

var myStr='要附加的文本'; //参数可以是毫秒。

$(myStr).appendTo('#containerDiv').slideDown('slow'); // 现在可以工作了。

于 2013-10-10T03:19:20.393 回答
0

我不确定如何在 css3 中执行此操作,但我有一个在 jQuery 中完成的示例。

http://jsfiddle.net/T5aEw/1/

要在追加时让它滑动,您应该首先隐藏追加的项目,display:block然后调用.slideDown添加的最后一个元素。

于 2013-10-09T20:13:01.393 回答