HTML精確定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全詳解


element.clientWidth   //返回元素的可見寬度

element.clientHeight   //返回元素的可見高度

element.clientTop

element.clientLeft


Ghrome中:

    clientTop = borderTop

    clientLeft = borderLeft

    clientWidth = width + padding

    clientHeight = height + padding


   (client和offset與所包含的元素寬高無關)


element.scrollWidth      //返回元素的總體寬度

element.scrollHeight     //返回元素的總體高度

element.scrollTop        //返回元素上邊緣與視圖之間的距離。

element.scrollLeft       //返回元素左邊緣與視圖之間的距離


Ghrome中:

     scrollWidth = 所包含元素的總寬度 + padding-left

     scrollHeight = 所包含元素的總高度 + padding-top

        注:所包含元素的總寬度是指:width + padding + border + margin


     當元素設置了overflow屬性,滾動元素後:

     scrollLeft的最大值爲 = scrollWidth - clientWidth 


element.offsetWidth     //返回元素的寬度

element.offsetHeight    //返回元素的高度

element.offsetTop       //返回元素的垂直偏移位置。

element.offsetLeft      //返回元素的水平偏移位置。


Ghrome中:

      offsetWidth = width + padding + border

      offsetHeight = height + padding + border

      offsetTop  獲取對象相對於版面或

                 由 offsetTop 屬性指定的父座標的計算頂端位置

      offsetLeft 獲取對象相對於版面或

                 由 offsetParent 屬性指定的父座標的計算左側位置


style.top:

我們知道 offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,

style.top 也是可以的,

二者的區別是:

     一、offsetTop 返回的是數字,

         而 style.top 返回的是字符串,除了數字外還帶有單位:px。

     二、offsetTop 只讀,而 style.top 可讀寫。

     三、如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。

offsetLeft 與 style.left、offsetWidth 與 style.width、offsetHeight 與 style.height 也是同樣道理。


clientHeight
大家對 clientHeight 都沒有什麼異議,都認爲是內容可視區域的高度,也就是說頁面瀏覽器中可以看到內容的這個區域的高度,一般是最後一個工具條以下到狀態欄以上的這個區域,與頁面內容無關。

offsetHeight
IE、Opera 認爲 offsetHeight = clientHeight + 滾動條 + 邊框。
NS、FF 認爲 offsetHeight 是網頁內容實際高度,可以小於 clientHeight。

scrollHeight
IE、Opera 認爲 scrollHeight 是網頁內容實際高度,可以小於 clientHeight。
NS、FF 認爲 scrollHeight 是網頁內容高度,不過最小值是 clientHeight。

簡單地說
clientHeight 就是透過瀏覽器看內容的這個區域高度。
NS、FF 認爲 offsetHeight 和 scrollHeight 都是網頁內容高度,只不過當網頁內容高度小於等於 clientHeight 時,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小於 clientHeight。
IE、Opera 認爲 offsetHeight 是可視區域 clientHeight 滾動條加邊框。scrollHeight 則是網頁內容實際高度。


參考:http://blog.csdn.net/xuantian868/article/details/3116442


應用:

製作可以滾動顯示的控件

<html>
<body style="width:500px;margin:0 auto">
	<div id="div1" style="white-space:nowrap;width:500px;overflow:hidden">
		<img src="1.jpg"/><img src="1.jpg"/>
	</div>
</body>
<script type="text/javascript">
function Scroll(){
	console.log(div1.scrollLeft)
	//如果滾動到末端,從頭開始開始滾動
	if(div1.scrollWidth-div1.clientWidth<=div1.scrollLeft){
		div1.scrollLeft = 0;
	}
	else div1.scrollLeft++;
	setTimeout(Scroll,15)
}
Scroll();
</script>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章