jQuery用绝对父动画制作div的宽度

时间:2011-04-13 09:40:10

标签: jquery google-chrome jquery-animate

我正在尝试动画div的宽度,该宽度由位于其absolute的父元素包裹到它自己的父元素。通过展示example of what I mean来解释可能更容易。

应该发生的是,当点击红色矩形时,绿色框的宽度被动画化为一定宽度,而红色矩形位于其旁边。这一切在IE& Firefox,但在Chrome中运行时,红色矩形会跳到绿色框下方。所以我只是想知道我是不是做了些蠢事,或者有人知道我做错了什么?

谢谢,

3 个答案:

答案 0 :(得分:2)

没错,只是浏览器认为没有足够的可用空间让两个元素彼此相邻显示:)

#banner-wrapper {
    min-width: 100%;
}

小提琴链接:http://jsfiddle.net/K2UbQ/8/

答案 1 :(得分:1)

问题是由于浏览器认为容器div不足以包含这两个元素。这是由您的绝对定位引起的。如果必须使用绝对定位,则需要确保div#banner-wrapper足够大以适应内容的增长。

您可以在x10中强制CSS中div的宽度,或者使用Click处理程序中的JavaScript更改其宽度,只在您需要的时候打开它。

答案 2 :(得分:1)

如果在#banner-wrapper周围放置边框,您会看到会发生什么。

一旦内容改变大小(,因此它会导致浮动元素因为它们不适合单行而导致浮动元素中断),Chrome看起来不会重新调整元素的大小。

另一种方法是使用display:inline-block作为内部元素。

示例:http://jsfiddle.net/K2UbQ/10/