位置: 编程技术 - 正文

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框架执行流程)

  • 矿产资源补偿费计入管理费用吗
  • 自行申报是什么征收方式
  • 企业福利费列支范围
  • 劳务报酬需要补税吗
  • 跨月能更正个税吗
  • 用房租入股
  • 每个季度申报怎么申报?
  • 小规模纳税人季报还是月报?
  • 财务报表季报申报报表要分开申报吗
  • 个税申报收入额怎么填
  • 小规模纳税人转让土地使用权
  • 会计核算体系的中心环节是什么
  • 申请补贴费用怎么写
  • 药店药品成本怎么核算
  • 预收账款核算内容是什么
  • 个人保证金业务
  • 增值税发票进项抵扣是什么意思
  • 增值税发票季报
  • 关于增值税普通发票开票信息填写要求
  • 杨志勇财政
  • 企业增值税去哪交
  • 其他收益是一级科目还是二级科目
  • 哪些人需缴纳个人所得税
  • 加班工资是否属劳动关系
  • 财政指标文和拨款流程
  • 质量扣款入账
  • 财务期初期末
  • 关于工程施工的劳动法规
  • 老板和公司账务处理流程
  • 如何删除文档中多余的页
  • 苹果语音备忘录怎么导出
  • 已入账的普通发票红冲后怎么做账
  • 单位房转卖
  • 发票备注栏可以写详见清单吗
  • 金融资产减值损益怎么算
  • php的框架有哪些
  • oauth2 sso单点登录
  • yii2权威指南
  • php面向对象优点,缺点
  • 资本化的研发费用计入什么科目
  • 增值税税收滞纳金哪里缴纳
  • php cat
  • 无人驾驶基础知识
  • vuenode前后端交互的方式
  • 自动驾驶数据集 mev
  • 增值税发票认证不了怎么回事
  • 货到付款付的是什么费用
  • 预付和挂账怎么做分录
  • 原材料退库的会计分录
  • 织梦怎么新建页面
  • mongodb查询工具
  • 现金流量表上期金额
  • 净利润除以实收资本是什么
  • 应税销售行为有哪些
  • 挂靠的项目如何做账?
  • 现金日记账怎么记账
  • 被选为工会代表
  • 增值税发票开负数怎么做账?
  • 销售货物多收款怎么处理
  • 机票行程单可以打印几次
  • 公转私怎么操作
  • 企业所得税退税会计分录
  • 刚成立的公司没有五险一金
  • 香港公司账户收美元要交税吗
  • 建筑劳务公司的会计账务处理
  • 编制合并财务报表的依据是纳入合并
  • mysql提高效率
  • centos7配置ssh免密码登录
  • centos5.6
  • qbdagent2002.exe - qbdagent2002是什么进程 有什么用
  • win8怎么更改密码
  • w10系统如何
  • javascript之typeof、instanceof操作符使用探讨
  • linux 服务器重启
  • unity获取当前位置
  • 冒烟测试和接口测试
  • javascript含义
  • android实时获取微信聊天信息
  • 北京市地方税务局土地增值税清算管理规程
  • 税务局风险防控工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设