当前位置: 代码迷 >> 综合 >> getBoundingClientRect
  详细解决方案

getBoundingClientRect

热度:57   发布时间:2023-11-26 04:09:28.0

getBoundingClientRect获取元素位置

是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。 
该函数返回一个Object对象,该对象有6个属性:top,lef,right,bottom,width,height; 

1.语法 var  rectObject = object.getBoundingClientRect();

2.返回值类型

rectObject.top:元素上边到视窗上边的距离;

rectObject.right:元素右边到视窗左边的距离;

rectObject.bottom:元素下边到视窗上边的距离;

rectObject.left:元素左边到视窗左边的距离;

3. 兼容性:ie5以上都能支持。

PC端:

Mobile端:

注意:IE、Firefox3+、Opera9.5、Chrome、Safari支持,在IE中,默认坐标从(2,2)开始计算,导致最终距离比其他浏览器多出两个像素,我们需要做个兼容。

document.documentElement.clientTop;  // 非IE为0,IE为2document.documentElement.clientLeft; // 非IE为0,IE为2functiongGetRect (element) {var rect = element.getBoundingClientRect();var top = document.documentElement.clientTop;var left= document.documentElement.clientLeft;return{top    :   rect.top - top,bottom :   rect.bottom - top,left   :   rect.left - left,right  :   rect.right - left}
}