1. 程式人生 > >getBoundingClientRect的快速理解

getBoundingClientRect的快速理解

cli 一個 bound 兼容性問題 想要 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的快速理解