screenX、clientX、pageX, offsetX的区别

screenX、clientX、pageX, offsetX的区别

一、图解

clientY、screenY、pageY、offsetY这四者是事件对象event上的属性
如图所示:假设紫色正方形中心处是点击处,紫色区域是鼠标事件触发对象
screenX、clientX、pageX, offsetX的区别

二、概念

1.screenX和screenY
  • 参考点:电脑屏幕左上角
  • screenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量
  • screenY:鼠标点击位置相对于电脑屏幕左上角的垂直偏移量
2.clientX和clientY
  • 参考点:浏览器内容区域左上角
  • clientX:鼠标点击位置相对于浏览器可视区域的水平偏移量(不会计算水平滚动条的距离)
  • clientY:鼠标点击位置相对于浏览器可视区域的垂直偏移量(不会计算垂直滚动条的距离)
3.pageX和pageY
  • 参考点:网页的左上角
  • pageX:鼠标点击位置相对于网页左上角的水平偏移量,也就是clientX加上水平滚动条的距离
  • pageY:鼠标点击位置相对于网页左上角的垂直偏移量,也就是clientY加上垂直滚动条的距离
4.offsetX和offsetY
  • 参考点:触发事件对象
  • offsetX:鼠标点击位置相对于触发事件对象的水平距离
  • offsetY:鼠标点击位置相对于触发事件对象的垂直距离

三、事件对象参数

screenX、clientX、pageX, offsetX的区别