element.getBoundingClientRect()在FF和Chrome中返回错误的坐标

时间:2014-05-06 10:19:29

标签: javascript html css dom

我有一个名为' element'的对象。刷新后,我想回到表中相同的更新字段。我试图找到对象的坐标(基本上它是一个表格行)。 下面的代码片段适用于IE。但在FF和Chrome中它不起作用。 因为它返回了错误的值。

    var x = element.getBoundingClientRect();
    alert(x.top);

如何获得FF和chrome的精确坐标?如果不能通过上面的代码,是否有任何替代方法?

有人可以解释一下吗?

2 个答案:

答案 0 :(得分:0)

您似乎没有考虑页面的当前滚动位置。

当您重新加载页面时,大多数浏览器会将您滚动回到重新加载之前的位置(a pretty useful feature)。

IE可能会在重新加载之前滚动到您之前评估getBoundingClientRect,而Chrome和Firefox首先进行滚动。

答案 1 :(得分:0)

要注意的一件事是getBoundingClientRect()返回的值就像页面以100%缩放(至少在Chrome中显示)一样,而与实际缩放级别无关。

这可以通过将它们乘以window.devicePixelRatio

来解决。