通常在使用jQuery获取偏移时,我会offset().left
。我的理解是offsetLeft
是纯粹的javascript,为什么不在jQuery offset().left
上使用它?它真的有助于跨浏览器吗?要么?
使用offset().left
时,我看到人们取出()
所以它只是offset.left
,这可以吗?如果括号中没有任何内容,那么它可以吗?
作为旁注:我听说在IE7中使用offset().top
的jQuery方式时,它会根据您滚动的数量给出一个screwey偏移量。 jQuery API page for offset()评论中有人说document.getElementById(anchor).offsetTop
修正了它。
答案 0 :(得分:4)
在某些浏览器中获取偏移量可能有点棘手。 IE 6及以下版本中offsetTop
和-Left
不正确,而offsetX
和offsetY
等其他浏览器完全不一致(请参阅Quirksmode)
通常,当库包含某些功能时,即使相同的功能似乎已经存在,通常也会出于跨浏览器的目的。
据我所知,使用offset.left
代替offset().left
甚至不行。后者将“获取 left
函数返回的对象的offset()
属性,这就是您想要的。前者没有括号,将“获取函数的left
属性 offset
”,这对我来说没有多大意义(除非对象的{您正在访问的{1}}属性不是jQuery包装器,在这种情况下,offset
属性可能不是函数,而是具有offset
和left
属性的对象
但我不是jQuery专家