码迷,mamicode.com
首页 > 其他好文 > 详细

getBoundingClientRect的快速理解

时间:2017-05-22 22:09:06      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:兼容性   浏览器   相对   好的   bottom   eject   快速   get   html   

getBoundingClinetRect:  获取某一个元素相对视窗的位置集合(它是一个方法,返回一个对象集合)

  位置集合主要包括 { top, left, right,bottom  } 等属性

用法: Obeject.getBoundingClinetRect()   (这里的Obeject代表的想要获取该元素的位置集合的DOM元素)

   eg:  var pos = Obeject.getBoundingClinetRect()

        var left = pos.left   // 获取该元素左边相对屏幕左边的位置

        var right = pos.right// 获取该元素右边相对屏幕左边的位置

      var bottom = pos.bottom// 获取该元素下边相对上边屏幕的位置

      var top= pos.top// 获取该元素上边相对屏幕上边的位置

 

 兼容性问题:    在低版本IE浏览器中会多出2px

 兼容性写法:

    eg:  var pos = Obeject.getBoundingClinetRect()

    var htmlLeft = document.documentElement.clientLeft

    var htmlTop = document.documentElement.clientTop

    var left = pos.left - htmlLeft    // 获取该元素左边相对屏幕左边的位置

    var right = pos.right - htmlLeft  // 获取该元素右边相对屏幕左边的位置

    var bottom = pos.bottom - htmlTop  // 获取该元素下边相对屏幕上边的位置

    var top= pos.top -  htmlTop   // 获取该元素上边相对屏幕上边的位置

  因为现代浏览器中document.documentElement.clientTop 和   document.documentElement.clientLeft  都为0,

  在低版本浏览器中 document.documentElement.clientTop 和   document.documentElement.clientLeft  都为2px

  所以很好的解决了兼容性问题

 

 

  

 

 

 

 

 

 

 

 

 

 

 

     

 

getBoundingClientRect的快速理解

标签:兼容性   浏览器   相对   好的   bottom   eject   快速   get   html   

原文地址:http://www.cnblogs.com/Glen1021/p/6891560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!