event对象的clientX,offsetX,screenX,pageX区别

区别:

clientX、clientY:

相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性。

pageX、pageY:

类似于clientX、clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性。

offsetX、offsetY:

相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。

screenX、screenY:

相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性。

其实这几个的区别很好记的!其实就是英文单词的意思。

client就是客户端,客户端就是浏览器,也就是相对浏览器的坐标。

page就是文档,也就是相对网页的坐标,也就是相对于浏览器可视区域的坐标还要加上滚动条。

视口坐标(client)是相对于窗口的坐标,而文档(page)坐标是相对于整个文档而言。例如,在文档坐标中如果一个元素的相对于文档的Y坐标是200px,并且用户已经把浏览器向下滚动了75px,那么视口坐标中元素的Y坐标为200px – 75px = 125px。

offset就是偏移,也就是想相对于源元素的偏移位置。

screen就是屏幕,也就是相对于屏幕的坐标。

这样就好记了~最后上一张图