offset().left、offsetLeft、offset.left,有什么区别?为什么不使用纯 js offsetLeft 而不是 jQuery 方式?

and*_*ick 2 javascript jquery offset

通常在使用 jQuery 获取偏移量时,我会这样做offset().left。我的理解是那offsetLeft是纯 javascript,那么为什么不在 jQuery 上使用它offset().left呢?它真的对跨浏览器有帮助吗?或者?

并且在使用时offset().left我看到人们取出它,()所以它只是offset.left,这样做可以吗?如果括号中没有任何内容,是否可以这样做?

作为旁注:我听说在 IE7 中使用它的 jQuery 方式时,offset().top它会根据您滚动的数量给出一个扭曲的偏移量。jQuery API 页面上 offset()的评论中有人 说document.getElementById(anchor).offsetTop修复了它。

Fla*_*ino 5

在某些浏览器中获取偏移量可能有点棘手。offsetTop-Left是在IE 6和下面不正确和其他类似的offsetXoffsetY跨浏览器(参见完全不一致怪异模式

通常,当一个库包含某些功能时,即使相同的功能似乎已经存在,它通常是为了跨浏览器的目的而完成的。

据我所知,使用offset.leftoffset().left不是甚至不应该工作。后者将是“获得left对象的属性通过返回offset()功能”,这是你想要的东西。前者,没有括号,将是“获取函数left属性”,这对我来说没有多大意义(除非您正在访问其属性的对象不是 jQuery 包装器,在这种情况下,该属性可能不是函数,而是具有和属性的对象)。 offsetoffsetoffsetlefttop

但我不是 jQuery 专家