Jquery UI Resizable with helper在firefox中增加了定位

时间:2012-07-04 17:51:01

标签: jquery-ui firefox

我正在使用jquery UI垂直调整div(I.E。使用n句柄)。我正在使用帮助程序,因此它仅在用户停止拖动后调整大小。调整大小后,我调用一个函数来设置周围元素的尺寸,使它们都适合容器。

这适用于chrome和IE,但是在firefox中添加了top的css属性,它将div从容器中吹出。

我已经尝试在事实之后移除顶部值,这有效,但这是一种黑客并且还导致div'跳'。

这是一个错误吗?是否有使用jquery css html等的解决方法?

要查看我的意思,请检查this如何在元素中调整和调整大小,如果在firefox中检查它,则会有一个顶级的css属性,但不会在chrome中。

谢谢, 路加

1 个答案:

答案 0 :(得分:3)

在我看来这是一个错误。

解决方法:如果您为top: 0; IE的css规则添加#resizable,则chrome和firefox具有相同的行为。另请参阅updated example

=== UPDATE ===

这是一个firefox错误。我从jQuery UI 可调整大小的方法代码走到jQuery(主)代码的 css 方法,以找到答案。在我的搜索结束时,我发现对于非静态定位元素,firefox返回css topauto,但如果设置了相对位置,则返回0px;在两种情况下top都没有定义(它们可以设置为auto而没有区别 - 它是默认值)。

另见this example

resizable 方法中,此结果有所不同(jQuery UI通过添加类来设置与DOM元素的相对位置)。如果bug(我已向mozilla报告)将被修复,那么你在firefox中的例子的行为应该与chrome中的相同。

如果有新内容,我会在这里报告......

=== UPDATE ===

现在我有一个解决方法:

对于您描述的特殊情况,请将可调整大小元素的css位置手动设置为static

添加到您的样式表:

#resizable { position: static; }

另见your updated example