三大系列:offset,scroll,client

一,offset系列

1,offsetWidth

  • 獲取到當(dāng)前元素的寬度(padding+border+width)
  • style.width也返回這個(gè)寬度
  • 區(qū)別:
  • 如果沒有給 HTML 元素指定過 width樣式,或者樣式?jīng)]有寫入標(biāo)簽內(nèi),則 style.width 返回的是空,如下圖所示。
  • style.width返回值除了數(shù)字外還帶有單位px,而offsetWidth返回的數(shù)值類型
image

(根據(jù)數(shù)值計(jì)算也可以知道返回的寬度是元素的width+左右兩個(gè)padding和左右兩個(gè)border)

2,offsetHeight

  • 獲取到當(dāng)前的元素的高度(height+padding+border)
  • 其他同offsetWidth類似
image

3,offsetLeft

  • 獲取元素到最近的定位父盒子的左側(cè)距離,如果沒有就繼續(xù)向上層尋找直到body
  • 獲取的距離主要是 父元素的margin+父元素的padding+父元素的border+自己的margin(元素沒有脫離文檔流)
image
  • 元素脫離文檔流后,就是元素自身的margin值+left,如圖所示:
image

4,offsetTop

  • 獲取元素到最近的定位父盒子的上側(cè)距離,如果沒有就繼續(xù)向上層尋找直到body
  • 獲取的距離主要是 父元素的margin+父元素的padding+父元素的border+自己的margin(元素沒有脫離文檔流)
image
  • 元素脫離文檔流后只跟自己的margin和top有關(guān)
image

5,offsetParent

  • 用于獲取該元素中有定位的最近父級元素
  • 如果當(dāng)前元素的父級元素都沒有進(jìn)行定位,那么offsetParent為body
image
image

二,scroll系列

1,scrollHeight

  • 獲取元素中內(nèi)容的實(shí)際高度(沒有邊框,有padding),如果沒有內(nèi)容或者內(nèi)容不足,那就獲取到元素的高度
image
image

2,scrollWidth

  • 同scrollHeight
  • 獲取元素中內(nèi)容的實(shí)際寬度(沒有邊框,有padding),如果內(nèi)容不足或者沒有內(nèi)容就獲取元素的寬度

3,scrollTop

  • 元素向上滾動(dòng)出去的距離
image

4,scrollLeft

  • 元素向左滾動(dòng)出去的距離
image

5,兼容問題

    • 未聲明 DTD: 谷歌,火狐,IE9+支持:
  • document.body.scrollTop/scrollLeft
    • 已經(jīng)聲明DTD:IE8以下支持:
  • document.documentElement.scrollTop/scrollLeft
    • 火狐/谷歌/ie9+以上支持的:
  • window.pageYOffest/pageXOffest
  • 所以兼容代碼:
function getScroll() {
        return {
            left: window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft || 0,
            top: window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop || 0
        };
    }

三、client系列

image

1,clientWidth

  • 獲取網(wǎng)頁可視區(qū)域?qū)挾?,不包括滾動(dòng)條,不包括邊框;相當(dāng)于width+padding;

2,clientHeight

  • 獲取網(wǎng)頁可視區(qū)域的高度,不包括滾動(dòng)條,不包括邊框;相當(dāng)于height+padding;

3,clientLeft

  • 相當(dāng)于左邊邊框的寬度(有滾動(dòng)條會(huì)加上滾動(dòng)條的寬度)

4, clientTop

  • 相當(dāng)于上邊框的寬度(有滾動(dòng)條會(huì)加上滾動(dòng)條的寬度)

5,clientX

  • 獲取鼠標(biāo)事件發(fā)生時(shí),鼠標(biāo)距離可視區(qū)域的水平坐標(biāo)

6,clientY

  • 獲取鼠標(biāo)事件發(fā)生時(shí),鼠標(biāo)距離可視區(qū)域的垂直坐標(biāo)
image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容