资讯专栏INFORMATION COLUMN

JS 中的offset、scroll、client总结

The question / 2641人阅读

摘要:两张图镇楼,随时翻阅指偏移,包括这个元素在文档中占用的所有显示宽度,包括滚动条,不包括隐藏的部分属性返回一个对象的引用,这个对象是距离调用的父级元素中最近的在包含层次中最靠近的,并且是已进行过定位的容器元素。

经常碰到offset、scroll、client这几个关键字,每次都要各种实验,这里总结一下。

两张图镇楼,随时翻阅

1. offset

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

offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的父级元素中最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素的引用。

如果当前元素的父级元素中没有进行CSS定位(position为absolute/relative),offsetParent为body

如果当前元素的父级元素中有CSS定位(position为absolute/relative),offsetParent取父级中最近的元素

obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位:像素。
offsetWidth = border-width*2+padding-left+width+padding-right

obj.offsetHeight 指 obj 控件自身的绝对高度,不包括因 overflow 而未显示的部分,也就是其实际占据的高度,整型,单位:像素。
offsetHeight = border-width*2+padding-top+height+padding-bottom

obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位:像素。
offsetTop= offsetParent的padding-top + 中间元素的offsetHeight + 当前元素的margin-top

obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位:像素。
offsetLeft= offsetParent的padding-left + 中间元素的offsetWidth + 当前元素的margin-left

2. scroll

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

scrollHeight 获取对象的滚动高度,对象的实际高度;

scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

scrollWidth 获取对象的滚动宽度

3. client

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

clientWidth 对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变

clientHeight 对象可见的高度

clientTopclientLeft 这两个返回的是元素周围边框的厚度,一般它的值就是0。因为滚动条不会出现在顶部或者左侧

网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~

参考:

javascript的offset、client、scroll的总结笔记

轻松弄清JavaScript中的offset、scroll、client

offset client scroll screen 关键字整理

PS:欢迎大家关注我的公众号【前端下午茶】,一起加油吧~

另外可以加入「前端下午茶交流群」微信群,长按识别下面二维码即可加我好友,备注加群,我拉你入群~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96805.html

相关文章

  • JS 中的offsetscrollclient总结

    摘要:两张图镇楼,随时翻阅指偏移,包括这个元素在文档中占用的所有显示宽度,包括滚动条,不包括隐藏的部分属性返回一个对象的引用,这个对象是距离调用的父级元素中最近的在包含层次中最靠近的,并且是已进行过定位的容器元素。 经常碰到offset、scroll、client这几个关键字,每次都要各种实验,这里总结一下。 两张图镇楼,随时翻阅 showImg(https://segmentfault.c...

    jerryloveemily 评论0 收藏0
  • JS宽高(clientoffsetscroll)的介绍

    摘要:问题今日头条的一道笔试题,的区别。结果如图更详细的介绍,请点击 问题 今日头条的一道笔试题,offsetWidth、clientWidth、scrollWidth的区别。 分析 JS中document对象的宽高有三种,cilent、offset、scroll client: clientWidth和clientHeight,clientTop和clientLeft clientWidt...

    mj 评论0 收藏0
  • 容易混淆的client-*,scroll-*,offset-*

    摘要:容易混淆上来不说话,先抛出几个问题是时候谈谈它们之间的区别了,是不是已经混乱了好吧,一步一步来搞清楚这些东西是啥。要搞清这几个容易混淆的概念,我的建议是运行文章中的例子。和类似于和,不同的是不包含边框大小。 容易混淆client-*,scroll-*,offset-* Truth comes from practice 上来不说话,先抛出几个问题: offsetWidth offs...

    Jokcy 评论0 收藏0
  • 容易混淆的client-*,scroll-*,offset-*

    摘要:容易混淆上来不说话,先抛出几个问题是时候谈谈它们之间的区别了,是不是已经混乱了好吧,一步一步来搞清楚这些东西是啥。要搞清这几个容易混淆的概念,我的建议是运行文章中的例子。和类似于和,不同的是不包含边框大小。 容易混淆client-*,scroll-*,offset-* Truth comes from practice 上来不说话,先抛出几个问题: offsetWidth offs...

    tolerious 评论0 收藏0
  • JavaScript中的各种宽高属性

    摘要:在中,存在着多的关于高度和宽度的属性,比如等等这么多,傻傻分不清也正常啊。第二问题对象的属性引用的是对象,表示该窗口中当前显示文档的。如果出现滚动条,滚动条会遮盖元素的宽高,那么该属性就是其本来宽高减去滚动条的宽高。 在js中,存在着N多的关于高度和宽度的属性,比如:clientHeight、offsetHeight、scrollHeight、availHeight、scrollLef...

    wangbinke 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<