首页 技术 正文
技术 2022年11月22日
0 收藏 526 点赞 2,509 浏览 889 个字

  clientHeightscrollHeightoffsetHeight 这三个dom属性有时让人觉得相似但又不相似

  以前对它们的理解也有一些模糊,现在总结一下,方便以后复习

  clientHeight:可视区域高度,也可理解为设备屏幕一屏的高度(不包括滚动条和工具栏)

  clientHeight—scrollHeight—offsetHeight三者的区别

  scrollHeight:实际内容高度(不包括滚动条和工具栏)

          若内容超出后出现滚动条,拉到底部,底部到顶部的高度就是scrollHeight,若内容没有超出,则scrollHeight=clientHeight

          如下动图控制台所示,clientHeight = 939,而scrollHeight = 3880,即蓝色区域所有内容的高度  

clientHeight—scrollHeight—offsetHeight三者的区别

  

  offsetHeight: 元素的实际高度(实际高度=border+padding+height)

  比如下图bodyclientHeightscrollHeight都为939,而offsetHeight126

  clientHeight—scrollHeight—offsetHeight三者的区别

  加上1像素border后,高度变为128

  clientHeight—scrollHeight—offsetHeight三者的区别

  加上10像素的padding后,高度变为148

  clientHeight—scrollHeight—offsetHeight三者的区别

  

  补充:

  ①:下面2种方式都可获得元素垂直滚动的距离,但不同浏览器中不是2种方法都支持,

    比如谷歌支持第1种(document.documentElement.scrollTop),所以第2种(document.body.scrollTop)获取滚动距离为0

  clientHeight—scrollHeight—offsetHeight三者的区别

  ②:一般获取浏览器clientHeight,scrollHeight,offsetHeight,scrollTop等属性会有一个兼容性写法,

    浏览器会自动匹配下面任意一种方式,若只写其中一种,则可能报错。固一般推荐下面写法

  var w = document.documentElement.offsetWidth || document.body.offsetWidth;
var h = document.documentElement.offsetHeight || document.body.offsetHeight;
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,996
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,510
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,353
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,137
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848