为什么 jQuery .css('left') 和 .position().left 返回不同的值?



我得到的$(el).css('left')$(el).position().left的值不同吗?

如果我去$(el).css('left', '100px'),那么$(el).css('left')它返回110px而不是100px(是的,它总是多 10%),如果我评估$(el).position().left,它会给我100.

为什么 Chrome 会这样操作?您可以使用 left 属性查看这将如何影响 jQuery 动画。

我在 Ubuntu 上使用 Chrome 21.0.1180.57。

编辑1:似乎只影响Chrome,FF 14.0.1给了我相同的值。

left返回 CSS left 属性的计算值。

position().left返回相对于元素的第一个偏移父项的 x 坐标。

这些值可以相等,也可以不相等。

由于呈现方式不同,浏览器之间的position().left也很容易不同,而.css("left")只能在给定的单位上有所不同,如果那样的话。

试试这段代码:

$("#div")[0].style.left

最新更新