scrollHeight/Width
是一個只讀的屬性,元素的內容高度/寬度,包括因爲overflow屬性而不可見的部分。不能直接從css中獲得。scrollHeight/Width
的值除了內容高度/寬度,也包括padding值
。scrollWidth
相似。
css
以scrollLeft
爲例:scrollLeft
屬性可以獲得或者設置元素滾動到左邊的像素值。注意(rtl和ltr會不一樣)html
假如element不可以scroll的時候,好比沒有設置overflow屬性。scrollLeft會被重置爲0,無論你設置什麼值,都不會有什麼效果。(這也是不少scrollLeft失效的緣由)瀏覽器
設置的值小於0,重置爲0性能
設置的值超過內容容許滾動的最大值,重置爲最大值。ui
注意事項:scrollLeft屬性是應用在父元素上面,而不是子元素。
其它scrollTop
與scrollLeft相似。this
offsetHeight/Width
是一個只讀屬性,返回一個元素的結構寬度,包括元素的border和padding、滾動條(若是存在的話)和css設置的高度/寬度。spa
以offsetLeft
爲例, 返回當前元素左上角相對於HTMLElement.offsetParent
節點的左邊界偏移的像素值。指針
HTMLElement.offsetParent
:一個只讀屬性,返回一個指向最近的包含該元素的定位元素。若是沒有定位的元素,則offsetParent
爲最近的 table 元素或根元素(標準模式下爲 html;quirks 模式下爲 body)。當元素的 style.display 設置爲 "none" 時,offsetParent 返回 null。offsetParent 頗有用,由於 offsetTop 和 offsetLeft 都是相對於其內邊距邊界的。code
例如:htm
<div style="width: 300px; border-color:blue; border-style:solid; border-width:1;"> <span>Short span. </span> <span id="long">Long span that wraps within this div.</span> </div> <div id="box" style="position: absolute; border-color: red; border-width: 1; border-style: solid; z-index: 10"> </div> <script> var box = document.getElementById("box"); var long = document.getElementById("long"); box.style.left = long.offsetLeft + document.body.scrollLeft + "px"; box.style.top = long.offsetTop + document.body.scrollTop + "px"; box.style.width = long.offsetWidth + "px"; box.style.height = long.offsetHeight + "px"; console.log(long.offsetParent) //offsetParent爲body </script>
offsetTop
相似的道理。
clientWidth/Height
是一個只讀屬性,對於沒有css或者內聯元素,其值爲0。它包括內部的寬度和高度和padding,但不包括滾動條、border和margin。
clientTop/Left
指的是一個元素頂部/左邊框的寬度。
摘自stackoverflow的一幅圖,能夠很好地看到之間的區別:
clientX/Y
屬性返回當事件被觸發時鼠標指針向對於瀏覽器頁面(或客戶區)的水平/豎直座標,不包括滾動條滾動才能顯示的區域。定位的依據爲瀏覽器窗口內容區域的左上角。
offsetX/Y
設置或者是獲得鼠標相對於目標事件的父元素的內邊界在X/Y座標上的位置
screenX/Y
相對於物理屏幕/監視器的左上角,只有你增長或減小顯示器的數量或分辨率,參考點纔會移動。
pageX/Y
相對於整個渲染頁面的左上角(包括經過滾動隱藏的部分),簡單來講就是<html>
元素。
1.Element.scrollHeight
2.Element.scrollLeft
3.HTMLElement.offsetWidth
4.HTMLElement.offsetParent
5.HTMLElement.offsetLeft
6.Element.clientHeight
7.Element.clientTop
8.Understanding offsetWidth, clientWidth, scrollWidth and -Height, respectively