關(guān)于js中的各種尺寸和坐標(biāo)的理解

關(guān)于尺寸:

? 關(guān)于尺寸問題分為兩種情況,一種是在body下的尺寸。另一種是在div下的尺寸。


在div下:

? clienttWidth/Height:是對(duì)象內(nèi)容的寬高。

? clienttWidth/Height:=自身的寬高+padding*2-滾動(dòng)軸寬度(mac系統(tǒng)不需要,滾動(dòng)軸不占寬度)

? clientTop:=border-top的寬。

? clientLeft:=border-left的寬。


? offsetWidth/Height:是對(duì)象的自身的寬高,包括滾動(dòng)條、邊線、padding,值會(huì)隨著內(nèi)容的輸入而不斷改變。?

? offsetWidth/Height=自身的寬高+padding*2+border*2=clientWidth/Height+border*2(如有滾動(dòng)條時(shí)加上滾動(dòng)條,mac系統(tǒng)除外)?

? offsetLeft:對(duì)象距父元素或?yàn)g覽器窗口的左邊距離。

? offsetTop: 對(duì)象距父元素或?yàn)g覽器窗口的上邊距離。

? offsetParent為定位的父元素,未定位時(shí)默認(rèn)以body為父元素。

在ie6/7中:offsetLeft=offsetParent的padding-left+當(dāng)前元素的margin-left

在ie8/9/9即chrome中::offsetLeft=offsetParent的padding-left+offsetParent的margin-left+當(dāng)前元素的margin-left+offsetParent的border-left

在FireFox中:offsetLeft=offsetParent的padding-left+offsetParent的margin-left+當(dāng)前元素的margin-left


? scrollWidth/Height:網(wǎng)頁實(shí)際內(nèi)容的寬高(包括帶滾動(dòng)條的隱蔽的地方)。

? scrollWidth/Height:所有瀏覽器是一致的。scrollHeight/Width=自身的寬高+padding*2。?

scrollTop:設(shè)置或獲取位于對(duì)象最頂端和父元素中可見內(nèi)容的最頂端之間的距離(即網(wǎng)頁被卷去的高)


在body下:

clientWidth/Height=自身的寬高+padding*2-滾動(dòng)軸寬度(mac系統(tǒng)不需要,滾動(dòng)軸不占寬度)

offsetWidth/Height=自身的寬高+padding*2+border*2=clientWidth/Height+border*2(如有滾動(dòng)條時(shí)加上滾動(dòng)條,mac系統(tǒng)除外)?

scrollWidth/Height:

1.給定寬高小于瀏覽器窗口時(shí)。

? scrollWidth/Height:通常時(shí)瀏覽器的寬高。

2.給定寬高大于瀏覽器窗口,且內(nèi)容小于給定寬高時(shí)。

? scrollWidth/Height:=給定的寬高+其所有的padding、margin和border(寬是(上下)高是(左右))

3.給定寬高大于瀏覽器窗口,且內(nèi)容大于給定寬高時(shí)。

? scrollWidth/Height:=內(nèi)容寬度(大于給定寬高的那個(gè)內(nèi)容)+其所有的padding、margin和border

獲取可視區(qū)域:

? document.documentElement.clientWidth|| document.body.clientWidth||window.innerWidth?

? document.documentElement.clientHeight|| document.body.clientHeight||window.innerHeight

獲取網(wǎng)頁卷進(jìn)去的高度:

var scrollTop= document.documentElement.scrollTop || window.pageYOffset(可選) || document.body.scrollTop

window.pageXOffset/pageYoffset 整數(shù)只讀屬性。表示X/Y軸滾動(dòng)條向右/下滾動(dòng)過的像素?cái)?shù)(表示文檔向右/下滾動(dòng)過的像素?cái)?shù))。IE不支持該屬性,使用body元素的scrollLeft屬性替代。


瀏覽器內(nèi)部的寬: innerWidth

瀏覽器內(nèi)部的高: innerHeight

瀏覽器外部的寬: outerWidth

瀏覽器外部的高: outerHeight

網(wǎng)頁可見區(qū)域?qū)挘?document.body.clientWidth;? (或innerWidth )

網(wǎng)頁可見區(qū)域高: document.body.clientHeight; (或innerHeight)

網(wǎng)頁可見區(qū)域?qū)挘?document.body.offsetWidth?? (包括邊線的寬);

網(wǎng)頁可見區(qū)域高: document.body.offsetHeight? (包括邊線的寬);

網(wǎng)頁正文全文寬: document.body.scrollWidth;

網(wǎng)頁正文全文高: document.body.scrollHeight;

網(wǎng)頁被卷去的高: document.body.scrollTop;

網(wǎng)頁被卷去的左: document.body.scrollLeft;

屏幕分辨率的高: window.screen.height;

屏幕分辨率的寬: window.screen.width;

瀏覽器頂端到屏幕頂端: window.screenTop;(在IE,Opera中Y軸為0時(shí)顯示的是頁面可見區(qū)域的距離,即瀏覽器工具欄的像素高度)

瀏覽器左部到屏幕左部: window.screenLeft;

屏幕可用工作區(qū)高度: window.screen.availHeight;

屏幕可用工作區(qū)寬度:window.screen.availWidth;


?坐標(biāo)用法:

clientX/clientY 相對(duì)于瀏覽器(可視區(qū)左上角0,0.不包括頂部的標(biāo)題欄。)的坐標(biāo)?


offsetX/offsetY 相對(duì)于事件源左上角(0,0)的坐標(biāo)


screenX/screenY 相對(duì)于設(shè)備屏幕左上角(0,0)的坐標(biāo)。

當(dāng)是window.screenX/screenY時(shí)。screenX/screenY等于screenLeft/screenTop。


pageX/pageY???? 相對(duì)于整個(gè)網(wǎng)頁左上角(0,0.包括頂部的標(biāo)題欄)的坐標(biāo)


x/y???????????? 在IE瀏覽器中如果進(jìn)行動(dòng)態(tài)定位時(shí):相對(duì)于最內(nèi)容包容元素的左上角(0,0)的坐標(biāo)

在IE瀏覽器中未進(jìn)行動(dòng)態(tài)定位時(shí)x/y =clientX/clientY。

在其他瀏覽器中始終x/y =clientX/clientY。

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

相關(guān)閱讀更多精彩內(nèi)容

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