Skip to content

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

Open
@pramper

Description

@pramper
Owner

标记的很完善的一张图

补充说明

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

  • 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

参考资料

Activity

draco1023

draco1023 commented on Sep 5, 2016

@draco1023

Mark

zengxiangliang

zengxiangliang commented on Sep 5, 2016

@zengxiangliang

good

rocky-191

rocky-191 commented on Sep 6, 2016

@rocky-191

mark

henryluki

henryluki commented on Sep 7, 2016

@henryluki

mark

jweboy

jweboy commented on Sep 7, 2016

@jweboy

mark

tiyunchen

tiyunchen commented on Oct 23, 2018

@tiyunchen

mark

Asunny-ren

Asunny-ren commented on Jan 30, 2019

@Asunny-ren

mark

printjs

printjs commented on Jan 30, 2019

@printjs

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

coderew

coderew commented on May 4, 2019

@coderew

为什么图看不到了?

kid1412621

kid1412621 commented on May 5, 2019

@kid1412621

图挂了

yingye

yingye commented on Aug 13, 2019

@yingye

图看不见了

teachat8

teachat8 commented on Aug 18, 2019

@teachat8

图看不见了

Xxxdxs

Xxxdxs commented on Oct 31, 2019

@Xxxdxs

老铁, 图呢。

thinkwhys

thinkwhys commented on Nov 15, 2019

@thinkwhys

????what tu?

miuqiang

miuqiang commented on Jan 21, 2020

@miuqiang

走光图

qingniao99

qingniao99 commented on Jan 29, 2021

@qingniao99

niubility!

coder-klaus

coder-klaus commented on Sep 16, 2021

@coder-klaus

皇帝的图片

equicy

equicy commented on Dec 7, 2021

@equicy

图呢

Accelerator97

Accelerator97 commented on Jan 12, 2022

@Accelerator97

皇帝的图片

equicy

equicy commented on Jan 12, 2022

@equicy
yydxg

yydxg commented on Jul 4, 2023

@yydxg

哈哈哈,图呢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @draco1023@qingniao99@henryluki@pramper@Xxxdxs

        Issue actions

          一张图彻底掌握scrollTop, offsetTop, scrollLeft, offsetLeft...... · Issue #10 · pramper/Blog