js中getBoundingClientRect()方法详解

getBoundingClientRect获取元素位置

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

getBoundingClientRect是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。

该函数返回一个Object对象,该对象有6个属性:top,lef,right,bottom,width,height;

这里的top、left和css中的理解很相似,width、height是元素自身的宽高,但是right,bottom和css中的理解有点不一样。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

    }

}

---------------------

作者:juzipchy

来源:CSDN

原文:https://blog.csdn.net/juzipchy/article/details/72898144

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,195评论 5 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,415评论 1 45
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,210评论 0 2
  • 飞机正点降落在丽江机场。丽江三义国际机场不大,被山环绕。阴天,厚厚的云压在山顶,好像触手可及。 缓缓走...
    甜_sweet阅读 1,625评论 2 1
  • “牧尘...赢了!” 九幽宫所在的那座石台上,唐冰唐柔两姐妹怔怔的望着那一片灵力光幕,那里少年的身影,已是逐渐的远...
    混沌天书阅读 1,495评论 0 0

友情链接更多精彩内容