5

由于前端经常会遇到计算位置的问题,那么搞懂clientWidth,offsetWidth,scrollHeight等等这些就变得尤为重要。放上经典图,一张图让你搞懂clientWidth,offsetWidth,scrollHeight~~~

一张图搞懂clientWidth,offsetWidth,scrollHeight

除了这些还有clientX,pageX,screenX等等,再来看下下面的图

clipboard.png

下面介绍一下每个字段的含义

  • clientLeft,clientTop
    表示内容区域的左上角相对于整个元素左上角的位置(包括边框)。(取决于边框的像数值?)
  • clientWidth,clientHeight
    内容区域的宽高,不包括边框宽度值。
  • clientX、clientY
    点击位置距离当前body可视区域的x,y坐标
  • offsetLeft,offsetTop
    相对于最近的祖先定位元素。
  • offsetParent
    某元素的父元素 例如:this.offsetParent.tagName.toLowerCase() 得到body...
  • offsetWidth,offsetHeight
    整个元素的尺寸(不包括因为滚动条变宽的宽度,包括滚动条的宽度和高度)
  • offsetX, offsetY
    相对于带有定位的父盒子的x,y坐标
  • scrollLeft,scrollTop
    元素滚动的距离大小
  • scrollWidth,scrollHeight
    整个内容区域的宽度(包括需拉动滚动条隐藏起来的那些部分) scrollWidth = scrollTop+clientWidth
  • pageX、pageY
    对于整个页面来说,包括了被卷去的body部分的长度
  • screenX、screenY
    点击位置距离当前电脑屏幕的x,y坐标
  • x、y
    和screenX、screenY一样

juan26
521 声望19 粉丝