天天看點

clientHeight、scrollHeight、offsetHeight和scrollTop之間差別

螢幕可見區域高(内容的可視高度,不包括邊框,邊距或滾動條):document.body.clientHeight

正文内容高(整個元素的高度,包括帶滾動條的隐蔽的地方):document.body.scrollHeight

内容高+padding+邊框:document.body.offsetHeight

滾動條已經滾動的高度:document.body.scrollTop

螢幕分辨率高:window.screen.height

一、先來這個我平時用的比較多的,height

它主要是傳回元素的高度或者說這個div的内容的高度,它是jquery對像,如果隻是想取到某個内容的高度,那完全可以使用這個,按照上面所設定的參數,得到的就是200,如圖h1:

clientHeight、scrollHeight、offsetHeight和scrollTop之間差別

二、也是平時經常用到的offsetheight

它傳回的高度是内容高+padding+邊框,但是注意哦,木有加margin哦,當然一般也木有啥需要把margin加進去的,以上代碼為例,結果顯示上圖h2;

對了,為什麼這個offsetheight的用法和height的用法不一樣的,因為offsetHeight是js對象所能支援的方法,而$("")所獲得的是一個jquery對象,他是不支援offsetHeight的。是以隻能用js方式來擷取啦。

三、我麼怎麼用的clientHeight和scrollHeight

clientHeight在頁面上傳回内容的可視高度(不包括邊框,邊距或滾動條),結果顯示上圖h3;

scrollHeight傳回整個元素的高度(包括帶滾動條的隐蔽的地方),它帶着滾動條呢,但是一般會用到滾動條的地步麼,好吧,我沒用到過,也許我寫的代碼還不夠多,結果顯示上圖h4;

四、關于innerheight和outerheight

這倆我也不咋用過,但是這看名字就基本知道啥差別啥意思了的感覺

innerHeight,inner,inner,裡面的裡面的,那就是不包括菜單欄、工具欄以及滾動條等的高度隻看裡面的外面的忽視。為比對的元素集合中擷取第一個元素的目前計算高度值,包括padding,但是不包括border,結果顯示上圖h5。

outerheight顧名思義,outer了都,外面的都要了,擷取元素集合中第一個元素的目前計算高度值,包括padding,border和選擇性的margin。傳回一個整數(不包含“px”)表示的值 ,或如果在一個空集合上調用該方法,則會傳回 null。

在.outerHeight()計算中總是包含padding-top ,padding-bottom 和 border-top,border-bottom ;如果includeMargin參數是true,那麼margin (top 和 bottom)也會被包含。