offsetHeight、clientHeight、scrollHeight、offsetLeft

平时开发时候遇到计算DOM元素位置的时候,offsetHeight、clientHeight、scrollHeight经常混淆每次都要查MDN,这次索性把这几个属性统一整理一下。

offsetHeight & offsetWidth

说明

HTMLElement.offsetHeight

  • 只读
  • 返回元素的布局高度(layout height)
  • 值 = contentH + paddingH + borderH
  • display:none时,值为0
  • 不包含伪类(::before ::after)的高度
  • 值的数据类型为数字

图示

clientHeight & clientWidth

说明

Element.clientHeight

  • 只读
  • 返回元素的内部高度
  • 一个元素没有css或者这个元素是内联元素时,返回 0
  • 值 = contentH + paddingH - scrollbarH (if present)

图示

scrollHeight & scrollWidth

说明

  • 只读
  • 返回元素的高度,包括不可见的溢出部分
  • 包含伪类的高度(::after,::before等)
  • 如果没有滚动条的话,和clientHeight相等

图示

判断是否滚到最底部

 const isRead = HTMLElement.scrollHeight - HTMLElement.scrollTop === HTMLElement.clientHeight;
复制代码

offsetParent & offsetLeft & offsetTop

offsetParent

HTMLElement.offsetParent

  • 只读
  • 返回最近的设置过position的祖先元素
  • 如果当前元素没有设置过position,会返回最近的td、th、table、body
  • 当该元素的display为none时候,offsetParent 返回 null

offsetLeft & offsetTop

  • 只读
  • 对于块状元素,offsetLeft 和 offsetTop 描述的是当前元素的border外侧 距offsetParent的border内侧的距离,和scroll无关
  • 对于内联元素,offsetLeft 和 offsetTop 描述的是当前元素的border外侧 距offsetParent的border外侧的距离,和scroll无关

图示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值