成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

js中不同的height, top的對比

開發 前端
每次看到js中的 clientHeight(clientTop), offsetHeight(offsetTop),scrollHeight(scrollTop)就頭大,根本分不清這幾種的區別,然而碰到這些已經不 值一兩次了,然后每次都要查看一下各自的區別,才能決定使用哪個。

每次看到js中的 clientHeight(clientTop), offsetHeight(offsetTop),scrollHeight(scrollTop)就頭大,根本分不清這幾種的區別,然而碰到這些已經不 值一兩次了,然后每次都要查看一下各自的區別,才能決定使用哪個。

今天特地花了一點時間整理了下各自的區別,本篇主要以chrome為準,可能各個瀏覽器之間還是有一些區別,但很多自己還未真正遇到過,還不是很清楚,等以后碰到了類似的兼容性問題,再記錄到這里,這次就chrome瀏覽器中各個屬性的區別做個記錄,以方便以后的查看

一 clientHeight,offsetHeight,scrollHeight的區別

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

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

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

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

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

  

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

  因為此時產生了滾動條,此時父div的可視區域高度為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>

二 clientTop,offsetTop,scrollTop的區別

  clientTop的理解可以參考clientHeight,clientHeight的的計算方式是當前可視區域的高度 加上 padding值,那么clientTop就可以理解為當前可視區域到上一級元素的距離

 如上圖所示,clientTop就是5px,大部分情況下,clientTop都是這個border值。

  offsetTop是當前對象到body元素的距離,它的計算方式相對復雜,先從上圖進行理解,當前對象指的是border邊框之內的區域,所以計算offsetTop要從當前對象的margin開始,計算公式如下 offsetTop = 當前對象的margin-top + 當前對象所有上級元素的margin-top + 當前對象所有上級元素的border-top,需要注意的是offsetTop是不能進行直接賦值的,只能通過這樣的計算方式得到

  scrollTop是當前對象的最頂部到當前對象在當前窗口顯示的范圍內的頂邊的距離.即是在出現了縱向滾動條的情況下,滾動條拉動的距離.

 

責任編輯:王雪燕 來源: 博客園
相關推薦

2011-08-04 13:07:59

數據庫查詢TOP子句

2024-04-24 12:03:20

2023-05-08 16:12:29

算法k近鄰算法KNN

2012-05-11 15:51:11

VisualStudiWindows8

2017-10-20 11:07:45

編程代碼編程模式

2019-01-11 13:57:06

2025-01-17 09:29:42

2012-09-11 09:57:46

私有云公有云云存儲

2018-06-15 06:57:32

云存儲私有云公有云

2011-04-19 10:53:05

SSAS

2010-12-23 13:56:55

SharePointIntranet

2021-09-16 10:21:58

topic容器容器信息

2017-09-27 16:44:23

前端

2009-12-25 10:10:38

Linux用戶群

2010-01-20 09:34:26

List<T>

2010-08-20 15:50:03

Paddingline-height

2015-08-05 09:37:34

PHPNode.js 對比挑戰

2021-05-31 15:53:57

CPU Top命令

2010-08-25 14:11:01

CSSborder-top

2021-08-10 11:45:57

topCPULinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人三级视频 | 国产欧美一区二区精品忘忧草 | 91精品国产一区二区三区香蕉 | 在线免费激情视频 | 成人在线免费观看 | 日韩中文字幕免费在线 | 午夜在线视频一区二区三区 | 国产午夜亚洲精品不卡 | 久久区二区 | h视频在线观看免费 | 69福利影院| 成人免费在线观看视频 | 伦理二区| 午夜免费观看网站 | 成人午夜免费福利视频 | 日本a视频 | 国产做a爱免费视频 | 欧美一级视频 | 亚洲欧美中文日韩在线v日本 | 毛片视频网址 | 电影午夜精品一区二区三区 | 欧美激情久久久 | 午夜精品一区二区三区在线观看 | 精品香蕉一区二区三区 | 日本精品在线观看 | 久久精品视频在线免费观看 | 国内精品久久久久久久影视简单 | 综合九九| 国产成人精品一区二 | 美女黄色在线观看 | 亚洲精品成人 | 人人九九 | 久久久久99| av官网在线| 一区二区在线免费观看视频 | 成人精品免费视频 | 亚洲码欧美码一区二区三区 | 国产精品高潮呻吟久久 | 91爱啪啪| 国内激情av片 | 羞羞色网站|