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

时间:2012-08-08 07:57:58

标签: jquery google-chrome jquery-animate

我为$(el).css('left')$(el).position().left获得的值是不同的?

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

为什么Chrome会以这种方式运行?您可以使用100属性查看这将如何影响jQuery动画。

我在Ubuntu上使用Chrome 21.0.1180.57。

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

2 个答案:

答案 0 :(得分:19)

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

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

这些值can be equal,它们可以是not equal

由于渲染不同,

position().left也很容易different between browsers,而.css("left")只能在给定的单位中有所不同,如果是这样的话。

答案 1 :(得分:3)

试试这段代码:

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