getBoundingClientRect方法獲取元素在頁面中的相對位置

獲取元素位置能夠用 offset 或 getBoundingClientRect,使用 offset 由於兼容性很差,比較麻煩,offset獲取位置會造成「回溯」。而 getBoundingClientRect 方法則
兼容性較好,基本全部的瀏覽器都支持了,且使用起來更容易和簡單。瀏覽器

1.使用語法:dom

element.getBoundingClientRect();

方法中沒有任何參數,返回值爲對象類型。spa

 

2.在IE8及如下的瀏覽器中,返回值對象包含的屬性值有:code

top::元素上邊緣距離文檔頂部的距離;對象

right: 元素右邊緣距離文檔左邊的距離;blog

bottom:元素下邊緣距離文檔頂部的距離;element

left:元素左邊緣距離文檔左邊的距離;文檔

 

3.在IE9以上、谷歌、火狐等瀏覽器中,返回值對象包含的屬性值有:get

top: 元素上邊緣距離文檔頂部的距離;class

right:元素右邊緣距離文檔左邊的距離;

bottom:元素下邊緣距離文檔頂部的距離;

left:元素左邊緣距離文檔左邊的距離;

width:元素的寬度(包含 padding 和 border)

height:元素的高度(包含 padding 和 border)

 

4.在IE8及如下瀏覽器沒有 width 和 height 屬性的解決方法:

在IE8及如下瀏覽器中,能夠經過計算獲得元素的寬和高:

如:

var dom = document.querySelector("#demo"),
r = dom.getBoundingClientRect();

var width = r.right - r.left;
var height = r.bottom - r.top;
相關文章
相關標籤/搜索