滚动条相关的那点事儿

想必大家在写下拉加载插件或者瀑布流的时候都用过这几个属性,但是时间长了的确会忘记。所以今天我们来一起熟悉一下这几个属性吧

  • clientHeightoffsetHeight属性和元素的滚动、位置没有关系。它代表元素的高度
    • clientHeight包括padding但不包括border、滚动条、margin高度。对于inline元素此属性一直为0,是只读元素
    • offsetHeight包括paddingborder、水平滚动条。但不包括margin的元素高度。对于inline元素这个属性值亦为0,只读元素
  • scrollHeight:因为子元素比父元素高,父元素不想被子元素城的一样高就显示出了滚动条,在滚动的过程中本元素有部分被隐藏了。scrollHeight代表包括当前不可见部分的元素的高度。
  • scrollTop:有滚动条时,滚动条向下滚动的距离(元素顶部被遮住的高度)
    • 保持兼容性:document.body.scrollTop || document.documentElement.scrollTop
      • documentElement是整个节点数的根节点root,即<html>标签(标准模式)
      • body是 DOM 对象里的body子节点,即<body>标签(混杂模式)
  • offsetTop:当前元素顶部距夫元素顶部的距离,和有无滚动条没有关系

用一张图来解释一下8~

大体就是这个样子,水一篇博客以备不时之需。