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.screenX和screenY

  • 参考点:触发事件对象
  • screenX:鼠标点击位置相对于触发事件对象的水平距离
  • screenY:鼠标点击位置相对于触发事件对象的垂直距离
    三、事件对象参数
    screenX、clientX、pageX, offsetX的区别