最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

getBoundingClientRect使用方法及兼容性处理

来源:懂视网 责编:小采 时间:2020-11-27 19:55:38
文档

getBoundingClientRect使用方法及兼容性处理

getBoundingClientRect使用方法及兼容性处理:这次给大家带来getBoundingClientRect使用方法及兼容性处理,getBoundingClientRect使用方法及兼容性处理的注意事项有哪些,下面就是实战案例,一起来看一下。getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元
推荐度:
导读getBoundingClientRect使用方法及兼容性处理:这次给大家带来getBoundingClientRect使用方法及兼容性处理,getBoundingClientRect使用方法及兼容性处理的注意事项有哪些,下面就是实战案例,一起来看一下。getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元

这次给大家带来getBoundingClientRect使用方法及兼容性处理,getBoundingClientRect使用方法及兼容性处理的注意事项有哪些,下面就是实战案例,一起来看一下。

getBoundingClientRect的作用

getBoundingClientRect用于获取某个html元素相对于视窗的位置集合。

执行 object.getBoundingClientRect();会得到元素的top、right、bottom、left、width、height属性,这些属性以一个对象的方式返回。

getBoundingClientRect()

这个方法返回一个矩形对象,包含四个属性:left、top、right和bottom。分别表示元素各边与页面上边和左边的距离。

var box=document.getElementById('box'); // 获取元素
alert(box.getBoundingClientRect().top); // 元素上边距离页面上边的距离
alert(box.getBoundingClientRect().right); // 元素右边距离页面左边的距离
alert(box.getBoundingClientRect().bottom); // 元素下边距离页面上边的距离
alert(box.getBoundingClientRect().left); // 元素左边距离页面左边的距离

浏览器兼容性

ie5以上都能支持,但是又一点点地方需要修正一下,

IE67的left、top会少2px,并且没有width、height属性。

利用getBoundingClientRect来写一个获取html元素相对于视窗的位置集合的方法

<p id="test" style="width: 100px; height: 100px; background: #ddd;"></p>
<script>
 function getObjXy(obj){
 var xy = obj.getBoundingClientRect();
 var top = xy.top-document.documentElement.clientTop+document.documentElement.scrollTop,//document.documentElement.clientTop 在IE67中始终为2,其他高级点的浏览器为0
 bottom = xy.bottom,
 left = xy.left-document.documentElement.clientLeft+document.documentElement.scrollLeft,//document.documentElement.clientLeft 在IE67中始终为2,其他高级点的浏览器为0
 right = xy.right,
 width = xy.width||right - left, //IE67不存在width 使用right - left获得
 height = xy.height||bottom - top;
 return {
 top:top,
 right:right,
 bottom:bottom,
 left:left,
 width:width,
 height:height
 }
 }
 var test = getObjXy(document.getElementById('test'));
 alert("top:" + test.top + ", right:" + test.right + ", bottom:" + test.bottom + ", left:" + test.left);
</script>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

vue实现购物车的小球抛物线效果详解

Vue.js中组件使用详解

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

getBoundingClientRect使用方法及兼容性处理

getBoundingClientRect使用方法及兼容性处理:这次给大家带来getBoundingClientRect使用方法及兼容性处理,getBoundingClientRect使用方法及兼容性处理的注意事项有哪些,下面就是实战案例,一起来看一下。getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元
推荐度:
标签: 方法 使用 用法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top