十分钟快速了解 JS 中的 offset、scroll、client

十分钟快速了解 JS 中的 offset、scroll、client作者:前端下午茶 公号 / SHERlocked93在下开发中经常碰到 offset、scroll、client 这几个关键字,比如 offse

大家好,欢迎来到IT知识分享网。

作者:前端下午茶 公号 / SHERlocked93

在下开发中经常碰到 offset、scroll、client 这几个关键字,比如 offsetLeft、offsetHeight、scrollHeight、clientTop 什么的,每次都要各种实验,这里总结一下,一劳永逸。

首先两张图镇楼,方便随时翻阅

十分钟快速了解 JS 中的 offset、scroll、client

十分钟快速了解 JS 中的 offset、scroll、client

1. offset

offset 指偏移,包括这个元素在文档中占用的所有显示宽度,包括滚动条、 padding、 border,不包括 overflow隐藏的部分

  1. offsetParent属性返回一个对象的引用,这个对象是距离调用 offsetParent的父级元素中最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。如果这个容器元素未进行CSS定位, 则 offsetParent属性的取值为根元素的引用。
  2. 如果当前元素的父级元素中没有进行CSS定位(position为 absolute/relative), offsetParent 为 body
  3. 如果当前元素的父级元素中有CSS定位( position 为 absolute/relative), offsetParent 取父级中最近的元素
  4. obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位:像素。
  5. offsetWidth = border-width*2+ padding-left+ width+ padding-right
  6. obj.offsetHeight 指 obj 控件自身的绝对高度,不包括因 overflow 而未显示的部分,也就是其实际占据的高度,整型,单位:像素。
  7. offsetHeight = border-width*2+ padding-top+ height+ padding-bottom
  8. obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位:像素。
  9. offsetTop= offsetParent的padding-top + 中间元素的offsetHeight + 当前元素的margin-top
  10. obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位:像素。
  11. offsetLeft= offsetParent的padding-left + 中间元素的offsetWidth + 当前元素的margin-left

2. scroll

scroll指滚动,包括这个元素没显示出来的实际宽度,包括 padding,不包括滚动条、 border

  1. scrollHeight 获取对象的滚动高度,对象的实际高度;
  2. scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
  3. scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
  4. scrollWidth 获取对象的滚动宽度

3. client

client指元素本身的可视内容,不包括 overflow被折叠起来的部分,不包括滚动条、 border,包括 padding

  1. clientWidth 对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变
  2. clientHeight 对象可见的高度
  3. clientTopclientLeft 这两个返回的是元素周围边框的厚度,一般它的值就是0。因为滚动条不会出现在顶部或者左侧

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/48310.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信