位置: 编程技术 - 正文

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

  • 工商年报主营业务怎么填
  • 定额征收需要建账吗
  • 个税身份验证不通过
  • 代发工资记什么科目
  • 交易性金融资产的账务处理
  • 销售部预借差旅费什么凭证
  • 小规模纳税人出租
  • 存货置换固定资产
  • 话费发票入账
  • 员工缴纳的工会会费可以税前扣除吗
  • 费用发票的种类
  • 发票上单价可以开0吗
  • 办公设备的税收编码
  • 上报汇总是什么时候
  • 公司购买二手车怎么抵税
  • 收到上月发票怎么写分录
  • 未分配利润为什么不分配
  • 发行股票的承销商佣金分录
  • 外管证预缴增值税怎么抵扣
  • win7网络无连接
  • 如何关闭windows10自动更新
  • 个人所得税跨年度能退吗
  • 职工教育经费包括餐费吗
  • 累积带薪缺勤金额怎么算
  • 员工意外伤害保险怎么买
  • scanexplicit.exe - scanexplicit是什么进程 作用是什么
  • 苹果电脑隐藏软件功能怎么开启
  • 分批供货付款方式
  • 员工工伤保险报销条件
  • php和javaweb
  • 现金溢余基本账务处理
  • php常用时间函数
  • 企业借款费用处理不当会产生什么样的后果呢?
  • 蜜蜂 (© Angela Parker/Offset)
  • php生成微信二维码
  • random_state=123
  • 批发企业商品盘点发生短缺时
  • 高新企业研发人员学历要求
  • redis两种持久化方式的优缺点
  • chat怎么用
  • 应收利息的会计处理方法
  • 金蝶本月金额公式
  • 政府补助的核算内容有哪些
  • phpcms使用教程
  • 2022年最新电脑操作系统
  • 一般开发票都需要什么开票信息包括了什么?
  • 清包工可以有一部分小料吗
  • 承兑汇票可以当现金借给别人用吗
  • 零申报对企业有什么影响
  • 员工的医药费计入什么科目
  • 电子承兑汇票兑现扣几个点
  • 非盈利组织接受劳务捐赠怎么入账
  • 息税前利润怎么理解
  • 低值易耗品费用记在什么费用
  • 在建工程前期投标流程
  • 厂房鉴定费的账户是什么
  • 研发费用是否包含增值税
  • 如何开具房屋租赁登记备案证明
  • 银行的手续费开票怎么开
  • 个体工商户和小规模纳税人的区别
  • 发票丢失了怎么报销
  • csv数据量太大怎么拆分
  • sql server错误和使用情况报告
  • Mysql 5.6.37 winx64安装双版本mysql笔记记录
  • 哪款系统重装软件比较好
  • wincomp.exe - wincomp进程是什么意思
  • vim显示中文乱码
  • win10无法收到wifi
  • 在windowsxp的应用程序中,经常有一些菜单选项呈暗灰色
  • linux7.2 sudo权限配置
  • wind10手机版
  • linux搭建chia
  • 举例讲解水生花卉栽培管理
  • android:Background线程池和UiThread线程池
  • 手机背光面板
  • shell脚本显示进度条
  • nodejs入门教程
  • javaScript parseInt字符转化为数字函数使用小结
  • python搭建网站并在服务器上部署
  • 白酒生产企业向百货公司销售试制药酒
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设