常常碰到offset、scroll、client这几个关键字,每次都要各类实验,这里总结一下。javascript
两张图镇楼,随时翻阅前端
offset
指偏移,包括这个元素在文档中占用的全部显示宽度,包括滚动条、padding
、border
,不包括overflow
隐藏的部分java
offsetParent
属性返回一个对象的引用,这个对象是距离调用offsetParent
的父级元素中最近的(在包含层次中最靠近的),而且是已进行过CSS定位的容器元素。 若是这个容器元素未进行CSS定位, 则offsetParent
属性的取值为根元素的引用。微信
position
为absolute/relative),offsetParent
为bodyposition
为absolute/relative),offsetParent
取父级中最近的元素overflow
而未显示的部分,也就是其实际占据的宽度,整型,单位:像素。offsetWidth
= border-width
*2+padding-left
+width
+padding-right
offsetHeight
= border-width
*2+padding-top
+height
+padding-bottom
offsetParent
属性指定的父坐标的计算上侧位置,整型,单位:像素。offsetTop
= offsetParent
的padding-top + 中间元素的offsetHeight + 当前元素的margin-topoffsetParent
属性指定的父坐标的计算左侧位置,整型,单位:像素。offsetLeft
= offsetParent
的padding-left + 中间元素的offsetWidth + 当前元素的margin-leftscroll
指滚动,包括这个元素没显示出来的实际宽度,包括padding
,不包括滚动条、border
学习
client
指元素自己的可视内容,不包括overflow
被折叠起来的部分,不包括滚动条、border
,包括padding
spa
网上的帖子大多深浅不一,甚至有些先后矛盾,在下的文章都是学习过程当中的总结,若是发现错误,欢迎留言指出~code
参考:对象
PS:欢迎你们关注个人公众号【前端下午茶】,一块儿加油吧~blog
另外能够加入「前端下午茶交流群」微信群,长按识别下面二维码便可加我好友,备注加群,我拉你入群~ip