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);        // 元素左边距离页面左边的距离

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

document.documentElement.clientTop;  // 非IE为0,IE为2

document.documentElement.clientLeft; // 非IE为0,IE为2

function GetRect (element) {

var rect = element.getBoundingClientRect();

var top = document.documentElement.clientTop;

var left= document.documentElement.clientLeft;

return{

top    :   rect.top - top,   //如果是IE7以下那么 结果为 ‘2 - 2’。 不是为IE的话 结果是 ‘ 0 - 0 ’;  不管哪种方式,结果最终就是0

bottom :   rect.bottom - top,

left   :   rect.left - left,

right  :   rect.right - left

}

}

转载于:https://www.cnblogs.com/web-alibaba/p/4571905.html

getBoundingClientRect()兼容性处理相关推荐

  1. [转] getBoundingClientRect判断元素是否可见

    getBoundingClientRect介绍 getBoundingClientRect获取元素位置 getBoundingClientRect用于获得页面中某个元素的左,上,右和下分别相对浏览器视 ...

  2. 前端学习——17——获取窗口属性,dom尺寸,让滚动条滚动

    一:查看滚动条的滚动距离 1:window.pageXOffset 2:window.pageYOffest (IE8及IE8以下不兼容) <!DOCTYPE html> <html ...

  3. DOM初探(16)——查看元素的集合尺寸

    三:DOM基本操作: 查看元素的集合尺寸 domEle.getBoundingClientRect(); 兼容性很好 改方法返回一个对象,对象里面有left,top,right,bottom等属性.l ...

  4. 【JavaScript 笔记】基础内容

    文章目录 JavaScript 特点 1.浏览器组成 2.JavaScript - 解释型语言,单线程,也叫ECMAscript(ES) 3.js有三个部分 4.js执行队列,轮转时间片(类似吃饭) ...

  5. JavaScript note

    1.浏览器 IE--trident Chrome--webkit / blink Firefox--gecko Opera--presto Safari--webkit 2.数据类型 a. 原始值: ...

  6. 登峰造极的Javascript

    文章目录 switch case 条件判断语句 数组 对象 typeof操作符 显式类型转换 隐式类型转换 函数 参数 作用域 作用域链 闭包 立即执行函数 对象,包装类 包装类 原型.原型链 原型链 ...

  7. JavaScript yyds

    JavaScript yyds JavaScript历史 主流浏览器及其内核 JavaScript中的数据类型 typeof函数 特殊情况 显示类型转换 隐式类型转换 函数 命名函数声明 匿名函数表达 ...

  8. JavaScript DOM学习笔记

    DOM(Document Object Model) dom提供了操作html和xml的机会,他是一个操作html和xml功能的一类对象的集合 DOM的基本操作 document代表整个文档 Node ...

  9. 9_js 日期对象Date()、js定时器、获取窗口属性、获取dom尺寸、脚本化css

    日期对象Date() 封装函数,打印当前是何年何月何日何时,几分几秒 直接看w3c上的介绍吧 https://www.w3school.com.cn/js/jsref_obj_date.asp js定 ...

  10. 尚硅谷_HTML5 核心 实战 笔记

    目录 序 offsetParent & offsetLeft & offsetTop 获取绝对位置和相对位置 自定义的函数 getBoundingClientRect offsetWi ...

最新文章

  1. 近期活动盘点:AI Time:论道AI安全与伦理、大数据、AI在中国金融保险业的应用案例分享讲座...
  2. poj3264 - Balanced Lineup(RMQ_ST)
  3. time包中Parse和Format的区别
  4. LeetCode 551. Student Attendance Record I
  5. 吴恩达深度学习——2.3 logistic回归损失函数
  6. 360浏览器清凉新版让手机解暑
  7. 证券业大数据与人工智能发展现状与应用趋势
  8. 视频加密技术的实与破解
  9. latex下的实数集R的写法
  10. pdf签名无效解决办法_谁告诉你PDF不能修改了?我不仅可以直接编辑,还能随便转化格式!...
  11. 爬虫是什么?可以用来干什么?
  12. 【转载】手机UC浏览器缓存视频合并方法
  13. 零基础如何学习SEO网站优化
  14. jQuery实现简单图片的轮播(自右向左播放)
  15. android自动登录简书,Android开发之简单登录界面
  16. c语言-基础知识点复习
  17. 衣服上的RFID标签对身体有什么影响
  18. oj 3014 文件格式变换
  19. cad如何打开stp文件_stp文件怎么打开_CAD打开stp文件详细介绍_酷下载
  20. Nginx安装及配置教程

热门文章

  1. Photoshop小技巧集锦八十条
  2. Java中的for循环和JavaScript中的for循环差别初探(02)
  3. C#-WinForm-发送邮件
  4. 如何查看K/3数据库表及字段详细信息
  5. 非关系型数据库和关系型数据库区别(转载)
  6. 16. 反转链表(C++版本)
  7. 07. Declare destructors virtual in polymorphic base classes
  8. angular环境配置
  9. Java设计模式之单例(Singleton)模式解析
  10. 每天一道剑指offer-约瑟夫环求解圆圈中剩余的数