抵消().left, offsetLeft, offset.左,有什么不同?为什么不使用纯js的offsetLeft而不

offset().left, offsetLeft, offset.left, what's the difference? why not use the pure js offsetLeft instead of the jQuery way?

本文关键字:offsetLeft 为什么不 js 而不 什么 left offset 抵消      更新时间:2023-09-26

通常当使用jQuery获得偏移量时,我做offset().left。我的理解是,offsetLeft是纯javascript,所以为什么不使用这个在jQuery offset().left ?它真的对跨浏览器有帮助吗?还是?

当使用offset().left时,我看到人们拿出(),所以它只是offset.left,这样做可以吗?是不是只有括号里什么都没有才行?

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

在某些浏览器中获取偏移量可能有点棘手。offsetTop-Left在ie6及以下版本中是不正确的,其他像offsetXoffsetY在浏览器中完全不一致(见Quirksmode)

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

据我所知,使用offset.left代替offset().left甚至不应该工作。后者将是"获取 offset()函数返回的对象left属性",这是您想要的。前者,没有括号,将是"获取函数 offsetleft属性",这对我来说没有多大意义(除非您访问的offset属性的对象不是jQuery包装器,在这种情况下,offset属性可能不是函数,而是具有lefttop属性的对象)。

但我不是jQuery专家