溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js中clientHeight、offsetHeight、scrollHeight的區(qū)別

發(fā)布時間:2021-08-27 16:00:23 來源:億速云 閱讀:203 作者:chen 欄目:web開發(fā)

本篇內(nèi)容主要講解“js中clientHeight、offsetHeight、scrollHeight的區(qū)別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“js中clientHeight、offsetHeight、scrollHeight的區(qū)別”吧!

一 clientHeight,offsetHeight,scrollHeight的區(qū)別

  clientHeight在各個瀏覽器中基本是一樣的,一致認為是內(nèi)容可視區(qū)域的高度,也就是說頁面瀏覽器中可以看到內(nèi)容的這個區(qū)域的高度,不包括滾動條,不包括margin,但包括padding,也就是說實際的clientHeight = 當前對象可視區(qū)域的高度 + padding值,如下圖所示 clientHeight = 對象可視區(qū)域高度(300) + 上下padding值(20) = 320

js中clientHeight、offsetHeight、scrollHeight的區(qū)別

在不同瀏覽器都實用的javascript方案:

var w= document.documentElement.clientWidth || document.body.clientWidth;
var h= document.documentElement.clientHeight || document.body.clientHeight;

  offsetHeight = 當前對象的高度 + 滾動條 + borde值 + padding值,上圖中當前對象的高度和可視區(qū)域高度是一樣的,所以offsetHeight = 300 + padding(20px ) + border(10px)  = 330

scrollHeight是網(wǎng)頁內(nèi)容的實際高度,最小值就是clientHeight,也就是說可以是跟clientHeight相等的,但我們假設這樣一個情形,如下代碼所示,父div高度是300px,子div高度是500px,這時候就會形成滾動條,此時父div的結(jié)構(gòu)圖如下:

js中clientHeight、offsetHeight、scrollHeight的區(qū)別

父div的的scrollHeight 就應該是 scrollHeight = 500px + padding值

因為此時產(chǎn)生了滾動條,此時父div的可視區(qū)域高度為283,當前對象高度也就是父div的高度為300,因此clientHeight = 283px + padding值(20px) = 303px

     offsetHeight = 父div的高度(300px) + padding值(20px) + 邊框(10px) = 330px

<div id="parent" style="padding:10px;border:5px red solid;height:300px;width:200px;overflow:auto">
    <div style="height:500px;width:400px"></div>
</div>

到此,相信大家對“js中clientHeight、offsetHeight、scrollHeight的區(qū)別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

js
AI