JS中clientWidth offsetWidth innerWidth scrollWidth等区分

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

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

一、clientWidth、clientHight

—这两个属性可以获取元素的可见宽度和高度

—这些属性都不带px的,返回的是一个数字,可以直接用来计算

—会获取元素的宽度和高度,包括内容区跟内边距

—这些属性都是只读的,不可修改

二、offsetWidth、offsetHeight

—获取元素的整个宽度和高度,包括内容区,内边距和边框

三、offsetParent

—可以用来获取当前元素的定位父元素

—会获取到离当前元素最近的开启了定位的祖先元素,如果所有的元素都没有开启定位,则去找html,也就是包含块的概念

四、offsetLeft、offsetTop

offsetLeft

        -当前元素相对于其定位父元素的水平偏移量

offsetTop

        -当前元素相对于其定位父元素的垂直偏移量

五、scrollWidth、scrollHeight

                -可以获取元素整个滚动区的宽度高度

scrollLeft -可以获取水平滚动条滚动的距离

scrollTop -可以获取垂直滚动条滚动的距离

六、innerHeight、innerWidth

(1)innerHeight属性:窗口中文档显示区域的高度,不包括菜单栏、工具栏等部分。该属性可读可写。

     IE不支持该属性,IE中body元素的clientHeight属性与该属性相同。

(2)innerWidth属性:窗口中文档显示区域的宽度,同样不包括边框。该属性可读可写。

     IE不支持该属性,IE中body元素的clientWidth属性与该属性相同。

七、总结:

  • 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一样
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕穗子博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值