getBoundingClientRect top属性返回错误的值?

时间:2017-11-22 15:41:22

标签: css

我进入div元素的控制台顶部,左侧,右侧,底部属性:

var offSet = document.getElementById("div").getBoundingClientRect();  

为什么我得到顶部 84 px而不是8px?

以下是一个示例:https://codepen.io/Y-Taras/pen/zPjrWJ

P.S。要在控制台中看到4个属性,请单击页面的任意位置

1 个答案:

答案 0 :(得分:1)

在CodePen中,在触发onload事件之前执行正文中的脚本。因此,从div(在全局offSet变量中)获得的信息来自draggable函数将跨度更改为绝对位置之前的位置。

(例如,您可以通过在分配alert()之前在代码中添加offSet来看到这一点。然后,当div仍然低于跨度时,程序执行暂停。)

解决方案:在offSet函数或onmouseup事件中获取onload信息。