欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
clientHeight , scrollHeight , offsetHeight

clientHeight , scrollHeight , offsetHeight相信每個(gè)人都用過(guò),可是每次用都要查一下到底哪個(gè)是文檔大小哪個(gè)是視口大小,還有頭疼的兼容問(wèn)題。

先來(lái)官方的了解一下這三個(gè)屬性:

  • clientHeight:元素客戶(hù)區的大小,指的是元素內容及其邊框所占據的空間大?。ń?jīng)過(guò)實(shí)踐取出來(lái)的大多是視口大?。?/li>
  • scrollHeight: 滾動(dòng)大小,指的是包含滾動(dòng)內容的元素大?。ㄔ貎热莸目偢叨龋?/li>
  • offsetHeight: 偏移量,包含元素在屏幕上所用的所有可見(jiàn)空間(包括所有的內邊距滾動(dòng)條和邊框大小,不包括外邊距

看起來(lái)解釋很清晰,可是用起來(lái)好像沒(méi)有這么容易啊,當然,各個(gè)瀏覽器的表達方式不同確實(shí)要背鍋,不過(guò),當用這些個(gè)屬性的時(shí)候免不了要面對這兩個(gè)東西的差異,document.body和document.documentElement,同樣的屬性用document.body和document.documentElemen表達出來(lái)可能會(huì )截然不同。

documentElement 和 body 相關(guān)說(shuō)明: 

body是DOM對象里的body子節點(diǎn),即 <body> 標簽;

documentElement 是整個(gè)節點(diǎn)樹(shù)的根節點(diǎn)root,即<html> 標簽;

DOM把層次中的每一個(gè)對象都稱(chēng)之為節點(diǎn),就是一個(gè)層次結構,你可以理解為一個(gè)樹(shù)形結構,就像我們的目錄一樣,一個(gè)根目錄,根目錄下有子目錄,子目錄下還有子目錄。

以HTML超文本標記語(yǔ)言為例:整個(gè)文檔的一個(gè)根就是,在DOM中可以使用document.documentElement來(lái)訪(fǎng)問(wèn)它,它就是整個(gè)節點(diǎn)樹(shù)的根節點(diǎn)。而body是子節點(diǎn),要訪(fǎng)問(wèn)到body標簽,在腳本中可以寫(xiě):document.body。

除了documentElement,body在瀏覽器下表現方式的不同和各個(gè)瀏覽器對這三個(gè)屬性的解釋不同,ie下的混雜模式和標準模式也來(lái)插了一腳。

下面我們就來(lái)總結一下各個(gè)瀏覽器在這些個(gè)東西的作怪下對這三個(gè)屬性表達:

  1. chrome:
    document.body.clientHeight      document.body.scrollHeight     ->   這三個(gè)都會(huì )返回文檔的大小document.body.offsetHeight 

    document.documentElement.clientHeight    ->   視口的大小document.documentElement.scrollHeight   ->   文檔的大小document.documentElement.offsetHeight   ->   文檔的大小

  2. 火狐

    console.log(document.documentElement.scrollHeight);   -> 文檔大小console.log(document.documentElement.clientHeight);  ->  文檔大小    (三個(gè)值相同,包含滾動(dòng)條)console.log(document.documentElement.offsetHeight);  ->  文檔大小console.log(document.body.clientHeight);      ->   視口大小console.log(document.body.offsetHeight);      ->   文檔大?。ú缓琾adding border)比scrollHeght略小console.log(document.body.scrollHeight);      ->   文檔大小 和 documentElement 三個(gè)取到的值一樣

     

  3. 在eage下模仿ie9(標準模式下)

    document.body.clientHeight   -> 0document.body.scrollHeight   ->  視口的大小document.body.offsetHeight  ->  0

    document.documentElement.clientHeight    ->   視口的大小document.documentElement.scrollHeight   ->   文檔的大小document.documentElement.offsetHeight   ->   文檔的大?。òㄟ吙颍?/pre>

  4. edge模擬ie8的混雜模式document.compatMode === "BackCompat"
    document.documentElement.offsetHeight   ->  文檔大小document.documentElement.offsetHeight   ->  文檔大小document.documentElement.clientHeight   ->   視口大小

    document.body.clientHeight    ->  視口大小document.body.offsetHeight    ->  文檔大?。ò╬adding 和 border)document.body.scrollHeight    ->   文檔大小

 

 

想必已經(jīng)對這個(gè)屬性厭惡至極了,各個(gè)因素的影響導致想要獲取視口大小和文檔大小變成一個(gè)頭疼的問(wèn)題,最后下面兩個(gè)函數解決了這個(gè)問(wèn)題,兼容了不同的瀏覽器。

/*視口的大小,部分移動(dòng)設備瀏覽器對innerWidth的兼容性不好,需要 *document.documentElement.clientWidth或者document.body.clientWidth *來(lái)兼容(混雜模式下對document.documentElement.clientWidth不支持)。 *使用方法 : getViewPort().width; */function getViewPort () {    if(document.compatMode == "BackCompat") {   //瀏覽器嗅探,混雜模式        return {            width: document.body.clientWidth,            height: document.body.clientHeight        };    } else {        return {            width: document.documentElement.clientWidth,            height: document.documentElement.clientHeight        };    }}
//獲得文檔的大?。▍^別與視口),與上面獲取視口大小的方法如出一轍function getDocumentPort () {    if(document.compatMode == "BackCompat") {        return {            width: document.body.scrollWidth,            height: document.body.scrollHeight        };    } else {        return {            width: Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),            height: Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)        }    }}

 

關(guān)于Width的和上面的沒(méi)有太大差異,參考上面的解釋。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
javascript知識點(diǎn)收藏
Js位置與大?。?)
原生 js 獲取元素的各種位置 (大全
DOM系列:視窗、設備、滾動(dòng)條和文檔尺寸
解析offsetHeight,clientHeight,scrollHeight之間的區別
scrollLeft,scrollTop等等詳解
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久