offset / client / scroll 三大系列

1. 偏移量(offset dimension)

属性说明
offsetHeight元素在垂直方向上占用的空间大小(像素)。包括元素高度、(可见的)水平滚动条高度、上下边框高度。
offsetWidth元素在水平方向上占用的空间大小。包括元素宽度、(可见的)垂直滚动条宽度、左右边框宽度。
offsetLeft元素的左外边框至包含元素的左内边框之间的像素距离。
offsetTop元素的上外边框至包含元素的上内边框之间的像素距离。

2. 客户区大小(client dimension)

属性说明
clientWidth元素内容区宽度 + 左右内边距宽度。
clientHeight元素内容区高度 + 上下内边距高度。

3. 滚动大小(scroll dimension)

包含滚动内容的元素的大小:

属性说明
scrollHeight在没有滚动条的情况下,元素内容的总高度。
scrollWidth在没有滚动条的情况下,元素内容的总宽度。
scrollLeft被隐藏在内容区域左侧的像素数;通过设置它可改变元素滚动位置。
scrollTop被隐藏在内容区域上方的像素数;通过设置它可改变元素滚动位置。

在确定文档的总高度时(包括基于视口的最小高度),必须取 scrollWidth / clientWidth 和 scrollHeight / clientHeight 中的最大值,才能保证跨浏览器下得到精确结果。

对比速记

  • offset:包含边框、滚动条,到 offsetParent 的距离。
  • client:包含内边距,不含边框。
  • scroll:内容总尺寸(含溢出部分)+ 滚动距离。

来源整理自:我的有道云笔记