JavaScript中getBoundingClientRect()方法详解

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

functiongGetRect (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

}

}

分别加上外边据、内边距、边框和滚动条,用于测试所有浏览器是否一致。

(0)

相关推荐

  • 将AutoCAD图导入Photoshop中的方法详解

    这已经是一个很古老的问题了,解决的方法就是“虚拟打印”!下面一步步的来(为方便大家,采取中英文对照,括号里面是英文版): 1、打开“文件(file)”菜单下的“打印机管理器(plottermanage ...

  • 禁用p2p下载工具的几种方法详解[图文]

    小编和同事聊天,经常听到同事抱怨在家上网网速不给力的情况。对于网速不给力的现象导致的原因有很多,其中就包括用户自己在使用一些迅雷或者电驴p2p下载工具,这样就会影响网速了。那么今天小编就给大家介绍禁用 ...

  • 腾讯地图测距怎么用 腾讯地图测距功能使用方法详解

    腾讯地图测距怎么用,使用方法详解。当要去一个地方,用手机地图查看路径的时候,最好是查看一下自己所在地到目的地的距离,而腾讯地图就带有这个功能——测距,下面,一起来看腾讯地图测距怎么用吧。 1)腾讯地图 ...

  • 硒鼓的日常保养方法详解

    硒鼓的日常保养方法详解

  • DIY台式电脑棘手的跳线连接安装方法详解

    DIY台式电脑,很多的网友已经掌握了组装方法,主要是把主机的各个硬件连接起来,关于硬件的连接,其实很简单,在这里我就不重复了,重点是装机中最后的跳线连接,也是装机中比较复杂和棘手的问题,下面把跳线的连 ...

  • 凯立德导航离线地图怎么下载?凯立德导航地图下载方法详解

    凯立德导航地图下载方法详解。很多朋友抱怨手机在线使用导航实在是太耗流量了,其实我们在出发前下载离线地图包就可避免这种情况。那么凯立德导航地图如何下载呢?别急,小编马上为你献上凯立德导航地图下载方法。 ...

  • win10系统怎么卸载 win10卸载方法详解

    win10系统怎么卸载?微软发布win10系统升级后,相信很多人都已经下载使用了吧!如果不想使用了怎么办?下面,绿茶小乐哥分享win10卸载方法详解,想了解的一起来看看吧! 微软希望我们每一个人都升级 ...

  • 让 history 命令显示日期和时间方法详解

    我们都对 history 命令很熟悉.它将终端上 bash 执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令. 默认情况下 history 命令直接显示用 ...

  • 苹果Macbook怎么编辑hosts文件?Mac上修改Hosts两种方法详解

    基于工作和破解软件的需求,很多亲们需要将自己设备的Honts文件修改成自己所需要的地址,在Windows上修改Host是一件很简单的事情,但是换成Mac系统,很多用户就发懵了.小编下面就为大介绍下Ma ...