New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

理解clientX,clientY,pageX,pageY,offsetX,offsetY #32

Open
sakila1012 opened this Issue Dec 5, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@sakila1012
Owner

sakila1012 commented Dec 5, 2018

写在前面

之前遇到这几属性一直没有明白它们代表什么,以及它们之间的关联,今天在项目中正好遇到了,记录下对它们的理解。

clientX,clientY

鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),表示页面可视区域的X,Y偏移量,可视区域不包含工具栏和滚动条,搜索栏等。并且与页面滚动无关,滚动后的clientY值不变。

pageX,pageY

类似于 clientX,clientY,但它们使用的是文档坐标而非窗口坐标。页面坐标Y,与clientY基本类似,唯一区别在于该值与页面滚动有关,具体来说,pageY = clientY + 页面滚动高度。

offsetX,offsetY

鼠标相对于事件源元素(srcElement)的X,Y坐标。

image

clientHeight,offsetHeight,scrollHeight

documentElement 和 body 的相关说明

body 是 DOM 对象里的 body 子节点,即 标签

documentElement 是整个节点树的根节点 root,即 标签

DOM 把层次中的每一个对象称之为节点,就是一个层次结构,可以理解为一个属性结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录。

除了 documentElement,body 在浏览器下的表现方式的不同和各个浏览器对这三个属性的解释不同

下面就看看各个浏览器这些个东西作怪下对这三个属性的表现

  1. Chrome
    image

  2. Firefox

image

  1. IE 10

image

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