Blog icon indicating copy to clipboard operation
Blog copied to clipboard

一张图彻底掌握scrollTop, offsetTop, scrollLeft, offsetLeft......

Open pramper opened this issue 9 years ago • 21 comments

标记的很完善的一张图

补充说明

上面的图已经标记的已经很明显了,我再稍微补充几点:

  • offsetTop, offsetLeft:只读属性。要确定的这两个属性的值,首先得确定元素的offsetParentoffsetParent指的是距该元素最近的position不为static的祖先元素,如果没有则指向body元素。确定了offsetParentoffsetLeft指的是元素左侧偏移offsetParent的距离,同理offsetTop指的是上侧偏移的距离。
  • offsetHeight, offsetWidth:只读属性。这两个属性返回的是元素的高度或宽度,包括元素的边框、内边距和滚动条。返回值是一个经过四舍五入的整数。如下图:

  • scrollHeight, scrollWidth:只读属性。返回元素内容的整体尺寸,包括元素看不见的部分(需要滚动才能看见的)。返回值包括padding,但不包括margin和border。如下图:

  • scrollTop, scrollLeft:图中已经表示的很明白了。如果元素不能被滚动,则为0。
  • window.innerWidth, window.innerHeight:只读。视口(viewport)的尺寸,包含滚动条
  • clientHeight, clientWidth:包括padding,但不包括border, margin和滚动条。如下图:

  • Element.getBoundingClientRect():只读,返回浮点值。这个方法非常有用,常用于确定元素相对于视口的位置。该方法会返回一个DOMRect对象,包含left, top, width, height, bottom, right六个属性:
    • left, right, top, bottom:都是元素(不包括margin)相对于视口的原点(视口的上边界和左边界)的距离。
    • height, width:元素的整体尺寸,包括被滚动隐藏的部分;padding和border参与计算。另外,heigth=bottom-top, width=right-left

参考资料

pramper avatar Sep 01 '16 01:09 pramper

Mark

draco1023 avatar Sep 05 '16 01:09 draco1023

good

zengxiangliang avatar Sep 05 '16 02:09 zengxiangliang

mark

rocky-191 avatar Sep 06 '16 08:09 rocky-191

mark

henryluki avatar Sep 07 '16 03:09 henryluki

mark

jweboy avatar Sep 07 '16 09:09 jweboy

mark

tiyunchen avatar Oct 23 '18 11:10 tiyunchen

mark

Asunny-ren avatar Jan 30 '19 07:01 Asunny-ren

上图有两个div ,一个是scroll 一个是client 。完全搞不清楚div.scrollTop 指的是哪个div的

printjs avatar Jan 30 '19 07:01 printjs

为什么图看不到了?

coderew avatar May 04 '19 12:05 coderew

图挂了

kid1412621 avatar May 05 '19 07:05 kid1412621

图看不见了

yingye avatar Aug 13 '19 02:08 yingye

图看不见了

teachat8 avatar Aug 18 '19 08:08 teachat8

老铁, 图呢。

Xxxdxs avatar Oct 31 '19 06:10 Xxxdxs

????what tu?

thinkwhys avatar Nov 15 '19 08:11 thinkwhys

走光图

miuqiang avatar Jan 21 '20 05:01 miuqiang

niubility!

qingniao99 avatar Jan 29 '21 03:01 qingniao99

皇帝的图片

coder-klaus avatar Sep 16 '21 07:09 coder-klaus

图呢

equicy avatar Dec 07 '21 12:12 equicy

皇帝的图片

Accelerator97 avatar Jan 12 '22 14:01 Accelerator97

已收到  我会尽快回复您

equicy avatar Jan 12 '22 14:01 equicy

哈哈哈,图呢

yydxg avatar Jul 04 '23 03:07 yydxg