我获取
$(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给我相同的值。
.css("left")
没有做到这一点!http://i.imgur.com/auymh.png 在Chrome浏览器中,.position().left
给出的是CSSleft
属性值。 - Gaurav Dadhaniadiv.jspDrag
的position
从relative
更改为absolute
就解决了!现在当我使用.css("left")
时,我得到了实际的left
属性。你知道为什么position: relative
是罪魁祸首吗? - Gaurav Dadhaniastyle.left
应该等于position().left
,因为该元素已经脱离文档流,除了其偏移父级和.style.left
之外,没有其他东西会影响其定位。当元素受到文档流的影响时,有更多的因素会影响其在文档中的最终位置,正如我在我的 jsfiddles 中所展示的那样。 - Esailija.css("left")
都应该返回CSSleft
属性值。正如您在屏幕截图中看到的那样,当元素相对定位时,.css("left")
返回的是不同的值。根据您的JSFiddles,.position().left
应该受到影响,而.css("left")
应始终返回CSS属性值。 - Gaurav Dadhania