includeios / document

js玄学
27 stars 2 forks source link

关于元素到窗口距离的一些整理 #1

Open includeios opened 6 years ago

includeios commented 6 years ago

关于元素到窗口距离的一些整理


在做懒加载和一些高度改变的动画时,我们需要知道元素在窗口中的位置,下面是这次整理的一些元素偏移量介绍

1

1. 浏览器的一些属性

screen值获取到的是整个屏幕的宽高,并不会随着浏览器窗口缩放而改变

2. offsetParent(定位父级)

在理解偏移大小之前,首先要理解offsetParent。人们并没有把offsetParent翻译为偏移父级,而是翻译成定位父级,很大原因是offsetParent与定位有关。定位父级offsetParent的定义是:与当前元素最近的经过定位(position不等于static)的父级元素。主要分为下列几种情况:

3. offsetLeft(offsetTop)

4. offsetWidth(offsetHeight)

然而,对于可被截断到下一行的行内元素(如 span),offsetTop 和 offsetLeft 描述的是第一个边界框的位置(使用 Element.getClientRects() 来获取其宽度和高度),而 offsetWidth 和 offsetHeight 描述的是边界框的尺寸(使用 Element.getBoundingClientRect 来获取其位置)。因此,使用 offsetLeft、offsetTop、offsetWidth、offsetHeight 来对应 left、top、width 和 height 的一个盒子将不会是文本容器 span 的盒子边界。

5. scrollTop(scrollLeft)

6. scrollHeight(scrollWidth)