位置: 编程技术 - 正文

js中不同的height, top的区别对比

编辑:rootadmin

推荐整理分享js中不同的height, top的区别对比,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

每次看到js中的 clientHeight(clientTop), offsetHeight(offsetTop),scrollHeight(scrollTop)就头大,根本分不清这几种的区别,然而碰到这些已经不 值一两次了,然后每次都要查看一下各自的区别,才能决定使用哪个。

本篇主要以chrome为准,可能各个浏览器之间还是有一些区别,但很多自己还未真正遇到过,还不是很清楚,等以后碰到了类似的兼容性问题,再记录到这里,这次就chrome浏览器中各个属性的区别做个记录,以方便以后的查看

一 clientHeight,offsetHeight,scrollHeight的区别

  clientHeight在各个浏览器中基本是一样的,一致认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,不包括滚动条,不包括margin,但包括padding,也就是说实际的clientHeight = 当前对象可视区域的高度 + padding值,如下图所示 clientHeight = 对象可视区域高度() + 上下padding值() =

在不同浏览器都实用的javascript方案:

  offsetHeight = 当前对象的高度 + 滚动条 + borde值 + padding值,上图中当前对象的高度和可视区域高度是一样的,所以offsetHeight = + padding(px ) + border(px) =

js中不同的height, top的区别对比

scrollHeight是网页内容的实际高度,最小值就是clientHeight,也就是说可以是跟clientHeight相等的,但我们假设这样一个情形,如下代码所示,父div高度是px,子div高度是px,这时候就会形成滚动条,此时父div的结构图如下:

父div的的scrollHeight 就应该是scrollHeight = px + padding值

因为此时产生了滚动条,此时父div的可视区域高度为,当前对象高度也就是父div的高度为,因此

clientHeight = px + padding值(px) = px

offsetHeight = 父div的高度(px) + padding值(px) + 边框(px) = px

二 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是当前对象的最顶部到当前对象在当前窗口显示的范围内的顶边的距离.即是在出现了纵向滚动条的情况下,滚动条拉动的距离。

标签: js中不同的height, top的区别对比

本文链接地址:https://www.jiuchutong.com/biancheng/377554.html 转载请保留说明!

上一篇:javascript日期处理函数,性能优化批处理(js日期操作)

下一篇:Java Mybatis框架入门基础教程(mybatis框架执行流程)

  • 主营业务收入和销售收入
  • 单位买绿植可以报销吗
  • 塑料制品的商品编码是什么类发票
  • 其他应收款报表数据怎么取
  • 原材料计划成本和实际成本的区别
  • 没有抵扣的发票怎么入账
  • 或有负债怎么入账
  • 商业企业月末结转成本
  • 对方公司退回货款,但发票已经开了怎么写摘要
  • 购进商品交印花税
  • 补去年收入的会计分录
  • 周转材料低值易耗品摊销
  • 实施计划成本存货发生毁损的会计处理怎么做?
  • 承租人转租需要交税吗
  • 2021年保险营销员
  • 公司必须购买税控设备吗
  • 企业的业务招待费多了好还是少了好
  • 年报中包括处置资金吗
  • 怎么知道定额发票是真是假的
  • 联想笔记本bios密码忘记了
  • 如何彻底关闭电脑右下角弹窗
  • 暂估人工成本分录怎么写
  • 股票股利和现金股利的共同点
  • 系统安装的步骤
  • php中this的用法
  • uniapp全局对象
  • win11键盘全部没反应
  • 去年未计提费用,今年付怎么做账
  • 公司被收购后所需资金
  • 资产划转的账务处理
  • 进程mmc.exe
  • thinkphp5数据库操作
  • 为庆祝中秋而摆放的东西
  • vue页面路由传参
  • 房地产企业预缴税款最新规定
  • 劳务外包会计分录最新
  • 小规模企业需要交几个点
  • 车船税发票丢失
  • 计算机网络的定义
  • 增值税专票的开票要求
  • 银行账号未备案怎么解决
  • 企业支付宝提现到对公账户手续费
  • 成本会计科目的三级科目有哪些
  • 待处理财产损溢在资产负债表中填哪里
  • 工程主营业务收入
  • 进项税需要转出的分录
  • 在建工程盘盈盘亏的账务处理
  • 非同一控制下的长期股权投资入账价值
  • sql注入攻击代码
  • 房地产公司活动方案
  • 企业稳岗返还使用情况明细表
  • 业务招待费扣除标准是多少
  • 税法对企业费用的限定
  • 社保年度汇算清缴怎么做
  • 交易性金融资产的账务处理
  • 一般纳税人可抵扣的票证有哪些?
  • 收到劳务费发票如何申报个税
  • 关于数据库的叙述
  • win8网页打不开
  • winex.exe - winex是什么进程
  • win8 网络连接
  • 惠普装xp系统
  • lnmgr.exe是什么
  • win7怎么运行itunes
  • win8任务栏图标太大了
  • win10激活突然失效
  • 怎么激活win7旗舰版系统
  • sendmail邮件服务器
  • win10如何设置时间和日期
  • js opendialog
  • cocos2dx视频教程
  • unity如何操作
  • Node.js中的什么模块是用于处理文件和目录的
  • unity3d怎么用
  • python二级怎么出题
  • jQuery UI结合Ajax创建可定制的Web界面
  • android从入门到精通
  • 增资注册资本
  • 中山大学税务硕士
  • 企业出租房产的税收优惠政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设