scroll、offset、client —— JS三大家族

简介:

  • clientHeight: 元素的可见高度,不包括边框和滚动条,是相对于视口的大小——clientHeight = (content height) + (padding top+padding bottom)。
  • offsetHeight: 元素的高度,包括边框和滚动条,但不包括外边距 —— offsetHeight = (content height) + padding + border。
  • scrollHeight: 元素内容的总高度,包括不可见部分,包括padding,伪元素::before::after的高度,但是不包括bordermargin以及水平滚动条的高度(如果有水平滚动条的话),需要通过滚动条才能查看。

使用场景:

  • clientHeight: 当需要获取元素在视口中的可见高度时,可以使用clientHeight。
  • offsetHeight: 当需要获取元素的总高度,包括边框和滚动条时,可以使用offsetHeight。
  • scrollHeight: 当需要获取元素内容的总高度,包括不可见部分时,可以使用scrollHeight。

代码示例:

// 获取元素的可见高度
var element = document.getElementById('myElement');
var clientHeight = element.clientHeight;// 获取元素的总高度
var offsetHeight = element.offsetHeight;// 获取元素内容的总高度
var scrollHeight = element.scrollHeight;

注意事项:

1. clientHeight:

  •    - clientHeight是元素在视口中的可见高度,不包括滚动条和外边距。
  •    - 当元素的内容超出视口高度时,clientHeight不会包括溢出的部分。
  •    - 当元素的display属性为none时,clientHeight为0。

2. offsetHeight:

  •    - offsetHeight是元素的总高度,包括内容、内边距、边框,但不包括外边距。
  •    - 当元素的display属性为none时,offsetHeight为0。

3. scrollHeight:

  •    - scrollHeight是元素内容的总高度,包括不可见部分,需要通过滚动条才能查看。
  •    - 当元素的内容没有溢出时,scrollHeight等于元素的clientHeight。
  •    - 当元素的内容超出视口高度时,可以使用scrollHeight来获取整个内容的高度,以便进行滚动操作。

4.获取内容的实际高度content height:(只有height ,不包括padding、border、margin)

  • window.getComputeStyle(obj).height 

5.getBoundingClientRect()方法
        getBoundingClientRect()方法用于获取元素位置,这个方法没有参数,可以获取页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。getBoundingClientRect()是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。

        getBoundingClientRect方法返回的rect对象,rect对象具有以下属性(全部为只读):

  • x:元素左上角相对于视口的横坐标
  • y:元素左上角相对于视口的纵坐标
  • height:元素高度
  • width:元素宽度
  • left:元素左上角相对于视口的横坐标,与x属性相等
  • right:元素右边界相对于左边视口的横坐标(等于x + width)
  • top:元素顶部相对于视口的纵坐标,与y属性相等
  • bottom:元素底部相对于上边视口的纵坐标(等于y + height)

 推荐:

三大家族scroll、offset、client_offset、client、scroll三大家族!-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

即时设计:设计流程图,让您的设计稿更具条理和逻辑

流程图小助手 在设计工作中,流程图是一种重要的工具,它可以帮助设计师清晰地展示设计思路和流程,提升设计的条理性和逻辑性。今天,我们要向您推荐一款强大的设计工具,它可以帮助您轻松为设计稿设计流程图,让…

研旭开发板资料下载地址--DSP28335资料

研旭电气开发板网盘资料 温馨提示:南京研旭提供两种网盘下载方式,第一种是奶牛快传(下载速度快,但偶尔会出现下载不了的情况),第二种是百度网盘(下载速度较慢,偶尔会出现链接失效的情况),请自行选择合适的下载方式,如有其它问题请旺旺联系客服解决哦! 1、研旭F28…

MIT 6.s081 实验解析——labs2

系列文章目录 MIT 6.s081 实验解析——labs1 MIT 6.s081 实验解析——labs2 文章目录 系列文章目录测试判断流程System call tracingsysinfo![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ab9ca34f1fc64b6aa1df74613dc1a397.png) 测试判断流程 完成代码后将.c文…

【温故而知新】JavaScript的数组常用方法

一、概念 在JavaScript中,数组是一种数据结构,用于存储和操作有序的元素集合。这些元素可以是不同的数据类型,包括数字、字符串、布尔值、对象或函数等。 JavaScript中的数组具有以下特点: 动态长度:JavaScript的数…

MyBatis接口的方法上使用,定义对应的 SQL 操作

目录标题 一、Mapper:二、Select、Insert、Update、Delete:三、Results、Result:四、Param:五、# 和 $: MyBatis 是一款基于 Java 的持久层框架,它通过简化数据库操作来帮助开发者构建更好的数据库访问应用…

day08 反转字符串 反转字符串Ⅱ 替换数字 翻转字符串里的单词 右旋转字符串

题目1&#xff1a;344 反转字符串 题目链接&#xff1a;344 反转字符串 题意 字符串是数组的形式&#xff0c;使用O(1)的空间将字符串反转 双指针法 法一 代码 class Solution { public:void reverseString(vector<char>& s) {for(int i0,js.size()-1;i<s.s…

YoloV8改进策略:Shape-IoU,考虑边框形状与尺度的度量

摘要 本文尝试使用最新的Shape-IoU改进YoloV8,在我自己的数据集上实现了涨点。 论文:《Shape-IoU:考虑边框形状与尺度的度量》 https://arxiv.org/pdf/2312.17663.pdf 作为检测器定位分支的重要组成部分,边界框回归损失在目标检测任务中发挥着重要作用。现有的边界框回归…

2024年中国股市会发生怎样的格局变化?

&#xff08;1&#xff09; 本来桌面上坐了四个利益方&#xff1a; 主力 北上 游资 散户 &#xff08;1&#xff09; 主力有两种&#xff0c;一种是国家队&#xff0c;是压舱石&#xff0c;不能乱动&#xff0c;是稳定政府方投资的各种中特估金特估、科创专精特新。不能让政府的…

linux中最常用的网络命令

文章目录 linux中最常用的网络命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 网络中不中&#xff0c;先看ping行不行语法不加任何参数发送指定数目设定发送时间间隔组合使用 Linux ip命令显示网络设备设置IP地址启动关闭网卡统计方…

MIML-DA

图3呢&#xff1f;且作者未提供代码

C#编程-显示运算符重载

重载函数的概念也可以应用于运算符。在将C#运算符应用到用户定义的数据类型时,运算符重载为它们提供额外的能力。只可以重载预定义的C#运算符组。 运算符重载的必要性 大多数内置数据类型都有与它们相关的预定义运算符。例如:带有运算符+、-、*和/的C#数据类型int为数学运算…

【大数据】基于 Flink CDC 构建 MySQL 和 Postgres 的 Streaming ETL

基于 Flink CDC 构建 MySQL 和 Postgres 的 Streaming ETL 1.准备阶段1.1 准备教程所需要的组件1.2 下载 Flink 和所需要的依赖包1.3 准备数据1.3.1 在 MySQL 数据库中准备数据1.3.2 在 Postgres 数据库中准备数据 2.启动 Flink 集群和 Flink SQL CLI3.在 Flink SQL CLI 中使用…

STL标准库与泛型编程(侯捷)笔记1

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

Java流程控制的陷阱

文章目录 1. switch中break的作用2. switch支持的数据类型3. else隐含的条件4. 省略花括号的陷阱5. for循环的结构6. 使用标签跳出双层for循环 流程控制三种&#xff1a;顺序结构、分支结构、循环结构 分支机构两种&#xff1a;if语句、switch语句 循环结构&#xff1a;while循…

JumpServer一键安装脚本

JumpServer 一键安装命令如下&#xff1a; curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash上述quick_start.sh脚本详细内容如下&#xff1a; #!/usr/bin/env bash #VERSIONv3.10.1 DOWNLOAD_URLhttps://re…

【APACHE】的认识和基础配置参数

#主页传送:江南的江 #每日鸡汤&#xff1a;人生没有如果和假设&#xff0c;只有后果和结果。生活有进有退&#xff0c;输什么也不能输心情。生活简单就是迷人的&#xff0c;学会简单其实就是不简单。要学会平静地接受现实&#xff0c;学会对自己说声顺其自然&#xff0c;学会坦…

MS4553S用于开漏模式和推拉模式的 2bit 双向电平转换器,可替代TXS0102/PCA9306等

产品简述 MS4553S 是一款双向电平转换器&#xff0c;可以用作混合电压的数字信 号系统中。其使用两个独立构架的电源供电&#xff0c; A 端供电电压范围是 1.65V 到 5.5V &#xff0c; B 端供电电压范围是 2.3V 到 5.5V 。可用在电压为 1.8V 、 2.5V 、 3.3V 和 5V 的信号转…

C++系列十四:结构体

C中的结构体 一、结构体的定义 在C中&#xff0c;结构体是一种自定义的数据类型&#xff0c;它允许我们将不同类型的数据组合在一起。结构体可以包含任意类型的数据&#xff0c;包括基本数据类型、指针、数组、其他结构体等。 定义结构体的语法如下&#xff1a; struct 结构…

目前最完整的WebRTC资源平台 —— 筑梦之路

webrtcwork.com 是一个非常好的网站&#xff0c;笔者从那里获得了很多有价值的学习资源&#xff0c;比如服务器端压力测试&#xff0c;商业WebRTC部署等资料。 地址&#xff1a;webrtcwork - Resources for those working with WebRTC 做个笔记

如何用UE5 的小白人替换成自己的 metahumen 数字人

1、用QuixelBridge 插件导入制作好的metahumen数字人 2、创建项目时如有选择第三人称游戏&#xff0c;在内容目录中找到第三人称游戏小白人的蓝图类&#xff0c;对其进行复制一个&#xff0c;重命名&#xff0c;我这里命名为BP_METAHUMEN&#xff0c; 并移到Metahumen目录下方便…