一、图解

如图所示,假设页面中灰色圆点是鼠标点击处,黄色区域是鼠标触发事件对象
JS操作界面移动区别 - 图1

二、概念

1、screenX 和screenY

  • 参照点:电脑屏幕左上角
  • screenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量
  • screenY:鼠标点击位置相对于电脑屏幕左上角的垂直偏移量

2、clientX和clientY

  • 参照点:浏览器内容区域左上角
  • clientX:鼠标点击位置相对于浏览器可视区域的水平偏移量(不会计算水平滚动的距离)
  • clientY:鼠标点击位置相对于浏览器可视区域的垂直偏移量(不会计算垂直滚动条的距离)

3、pageX和pageY

  • 参照点:网页的左上角
  • pageX:鼠标点击位置相对于网页左上角的水平偏移量,也就是clientX加上水平滚动条的距离
  • pageY:鼠标点击位置相对于网页左上角的垂直平偏移量,也就是clientY加上垂直滚动条的距离

4、offsetX和offsetY

  • offsetX:鼠标点击位置相对于触发事件对象的水平距离
  • offsetY:鼠标点击位置相对于触发事件对象的垂直距离

    三、事件对象参数

    JS操作界面移动区别 - 图2

  • clientX和 clientY 是可视区域的 x,y的坐标

JS操作界面移动区别 - 图3

  • offsetX、offsetY 事件触发相对于当前元素自身的位置的x,y坐标

JS操作界面移动区别 - 图4

  • screenX、screenY 距离当前电脑屏幕的x,y坐标 (屏幕分辨率的宽度计算)

JS操作界面移动区别 - 图5

  • pageX、pageY 是相对于整个页面来说,包括了被卷出去的body部分的长度

JS操作界面移动区别 - 图6