关闭

getBoundingClientRect的用法

标签: getBoundingClientRec
1139人阅读 评论(0) 收藏 举报
分类:

getBoundingClientRect用于获取某个元素相对于视窗的位置集合。集合中有top, right, bottom, left等属性。

1.语法:这个方法没有参数。

rectObject = object.getBoundingClientRect();

2.返回值类型:TextRectangle对象,每个矩形具有四个整数性质( 上, 右 , 下,和左 )表示的坐标的矩形,以像素为单位。

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

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

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

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

示图:

3. 兼容性:我用ie11的Document Mode模式测试,ie5以上都能支持。

 

PC端:

Mobile端:

4.width和height:ie9以上支持width/height属性。

兼容ie6~ie8的width/height的写法:

var rectWidth = rectObject.right - rectObject.left;
    rectHeight = rectObject.bottom - rectObject.top;

 

5.在ie7及ie7以下left和top会多出两个像素。

ie7下测试:

chrome下测试:

在百度经验下找到document.documentElement在ie7及ie7以下会多出两个像素。为了搞明白document.documentElement是什么?我把它的tagName打印出来。

ie7下:

在ie7及ie7以下的html元素坐标会从(2, 2)开始算起,在ie8已经修复了这个bug。这就是多出两个像素的原因。下面我们做下兼容:

var    rectLeft = rectObject.left - document.documentElement.clientLeft || 2;
    rectRight = rectObject.right - document.documentElement.clientLeft || 2;
    rectBottom = rectObject.bottom - document.documentElement.clientTop || 2;
    rectTop = rectObject.top - document.documentElement.clientTop || 2;

 (完)


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

js中getBoundingClientRect()方法详解

getBoundingClientRect获取元素位置 getBoundingClientRect用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。 getBoundingClient...
  • juzipchy
  • juzipchy
  • 2017-06-07 11:45
  • 1183

getClientRects 和 getBoundingClientRect 的用法和区别

欢迎来到Altaba的博客     2017年2月19日 getClientRects获取元素占据页面的所有矩形区域  描述: getClientRects 返回一个TextRectan...
  • Altaba
  • Altaba
  • 2017-02-19 16:09
  • 1747

javascript笔记--(第二十二章)DOM元素尺寸和位置

获取元素CSS大小 通过style内联获取元素的大小 style获取只能获取到行内style属性的CSS样式中的宽和高,如果有获取;如果没有则返回空。 Document ...
  • a409051987
  • a409051987
  • 2017-02-07 21:03
  • 144

html5移动端知识点总结(一)

第1章 使用rem作为单位html{font-size:10px}1.1使用媒体查询,不同分辨率设置不同的html的font-size@(min-width:320px){ html{font...
  • haozhoupan
  • haozhoupan
  • 2016-09-14 17:34
  • 1535

D3js 获取X,Y轴坐标

D3 就不多做介绍了,是一个非常强大的作图的工具。它到底怎么样,有多强大,看看官网d3js.org 就知道了. 参考地址: 1. http://www.pkuwwt.tk/d3-tutorial-...
  • supingemail
  • supingemail
  • 2015-07-17 13:45
  • 2483

jQuery源码分析之offset,position,offsetParent方法以及源码中常见的cssHooks,swap代码

offset方法源码分析: //获取当前元素相对于文档的偏移量 offset: function( options ) { //如果有参数表示设置调用对象的相应属性! if ( argume...
  • liangklfang
  • liangklfang
  • 2015-10-18 17:36
  • 1353

js 获得盒子距离窗口的距离的集合的函数dom.getboundingclientrect()

rectObject = object.getBoundingClientRect(); 返回值是一个 DOMRect 对象,这个对象是由该元素的 getClientRects() 方法返回...
  • qq_30100043
  • qq_30100043
  • 2017-06-13 14:17
  • 542

新发现getBoundingClientRect() 来获取页面元素的位置

getBoundingClientRect() 来获取页面元素的位置   document.documentElement.getBoundingClientRect  ...
  • appteam_vlctech
  • appteam_vlctech
  • 2013-01-20 19:51
  • 276

js、jq获取对象位置 对象宽高

1、滚动距离、宽高 scrollTop/scrollLeft/ 对象滚动条的上面/左边折卷的距离  js写法: document.body.scrollTop || document.document...
  • kongjiea
  • kongjiea
  • 2014-03-29 17:35
  • 8790

含有滚动条元素的getBoundingClientRect等属性的值

问题1:首先我们给出iScroll的一个官方的demo,你可以把这个demo拷贝到本地然后运行,或者去github下载 iScroll demo: scrollbars var myS...
  • liangklfang
  • liangklfang
  • 2016-10-21 09:25
  • 619
    个人资料
    • 访问:509771次
    • 积分:7574
    • 等级:
    • 排名:第3325名
    • 原创:198篇
    • 转载:138篇
    • 译文:1篇
    • 评论:47条
    文章分类
    最新评论