getBoundingClientRect的快速理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getBoundingClientRect的快速理解相关的知识,希望对你有一定的参考价值。
getBoundingClinetRect: 获取某一个元素相对视窗的位置集合(它是一个方法,返回一个对象集合)
位置集合主要包括 { top, left, right,bottom } 等属性
用法: Obeject.getBoundingClinetRect() (这里的Obeject代表的想要获取该元素的位置集合的DOM元素)
eg: var pos = Obeject.getBoundingClinetRect()
var left = pos.left // 获取该元素左边相对屏幕左边的位置
var right = pos.right// 获取该元素右边相对屏幕左边的位置
var bottom = pos.bottom// 获取该元素下边相对上边屏幕的位置
var top= pos.top// 获取该元素上边相对屏幕上边的位置
兼容性问题: 在低版本IE浏览器中会多出2px
兼容性写法:
eg: var pos = Obeject.getBoundingClinetRect()
var htmlLeft = document.documentElement.clientLeft
var htmlTop = document.documentElement.clientTop
var left = pos.left - htmlLeft // 获取该元素左边相对屏幕左边的位置
var right = pos.right - htmlLeft // 获取该元素右边相对屏幕左边的位置
var bottom = pos.bottom - htmlTop // 获取该元素下边相对屏幕上边的位置
var top= pos.top - htmlTop // 获取该元素上边相对屏幕上边的位置
因为现代浏览器中document.documentElement.clientTop 和 document.documentElement.clientLeft 都为0,
在低版本浏览器中 document.documentElement.clientTop 和 document.documentElement.clientLeft 都为2px
所以很好的解决了兼容性问题
以上是关于getBoundingClientRect的快速理解的主要内容,如果未能解决你的问题,请参考以下文章
[转] getBoundingClientRect判断元素是否可见
Element.getBoundingClientRect()
js中getBoundingClientRect()方法详解