JS中的位置和宽度:clientWidth、offsetWidth、scrollWidth,clientTop和clientLeft等区别

853 阅读1分钟

JS中的位置和宽度:clientWidth、offsetWidth、scrollWidth,clientTop和clientLeft等区别

一、clientWidth和clientHeigh 、 clientTop和clientLeft

clientWidth和clientHeight
  下面div代表的是元素
  console.log(div.clientWidth,div.clientHeight);
  上面获取到的宽高是:width+padding
  如果有滚动条时会是:width+padding-17(滚动条宽高)
  clientTop: 上边框的厚度。
  clientLeft: 左边框的厚度。

二、offsetWidth和offsetHight 、offsetTop和offsetLeft
  offsetWidth和offsetHeight
  下面div代表的是元素
  console.log(div.offsetWidth,div.offsetHeight);
  上面获取到的宽高是:width+padding+border也就是这个元素的实际占位宽高(加上边框)
  offsetTop: 当前元素上边框外边缘到最近的已定位父级(offsetParent) 上边框内边缘的距离。如果父级都没有定位,则分别是到body顶部的距离。
  offsetLeft: 当前元素左边框边缘到最近的已定位父级(offsetParent)左边框内边缘的距离。如果父级都没有定位,则分别是到body左边的距离。

三、scrollWidth和scrollHeight 、 scrollTop和scrollLeft
  scrollWidth和scrollHeight
  下面div代表的是元素
  console.log(div.scrollWidth,div.scrollHeight);
  上面获取到的宽高是:width+padding
  如果有滚动条时会是:因为内容宽度不同,实际内容宽度+padding
  scrollTop: 内容层顶部到可视区域顶部的距离(被隐藏区域宽度)。
  scrollLeft: 内容层左边到可视区域左边的距离(被隐藏区域宽度)。