在我们触发事件的时候会有event对象,该对象是我们触发事件时的一些信息。
其中包括了鼠标坐标的一些信息。
oDiv.onclick = function(event){console.log(event);}
clientX/clientY
:::info 该属性是鼠标位置相对于当前可视页面的坐标(不计算滚动条的距离)。 :::
document.onclick = function(event){console.log(event.clientX, event.clientY);}

另外还有x、y两个属性,和clientX/clientY属性同义,但是老版的火狐浏览器不支持!!!
pageX/pageY
:::info
该属性是鼠标位置相对于当前文档的坐标(会计算滚动条的距离,这是和clinetX/clientY的区别)。
❌ IE9及以下不支持
:::
document.onclick = function(event){console.log(event.pageX, event.pageY);}

另外还有layerX/layerY两个属性,和pageX/pageY属性同义,但是IE11及以下不支持。
📌 兼容性写法:
function pagePos(e){var sLeft = document.body.scrollTop || document.documentElement.scrollTop,sTop = document.body.scrollTop || document.documentElement.scrollLeft;var cLeft = docuemnt.documentElement.clientLeft,cTop = docuemnt.documentElement.clientTop;return {X: e.clientX + sLeft - cLeft,Y: e.clientY + sTop - cTop}}
screenX/screenY
:::info 改属性是鼠标位置相对于屏幕的坐标。 :::
document.onclick = function(event){console.log(event.screenY, event.screenX);}

offsetX/offsetY
:::info 该属性是鼠标相对块元素内部的坐标。 :::
// oDiv 是获取到的 divoDiv.onclick = function(event){console.log(event.offsetX, event.offsetY);}
编写鼠标拖动元素
先认识三个事件:
mousedown鼠标按键按下事件mouseup鼠标按键抬起事件mousemove鼠标移动事件
```javascript var oDiv = document.getElementsByClassName(“box”)[0];<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box {position: absolute;top: 0;left: 0;width: 100px;height: 100px;background-color: orange;}</style></head><body><div class="box"></div></body></html>
oDiv.onmousedown = function (event) { // div 被点击的时候记录鼠标距离 div 边的距离 var offsetPos = { X: event.offsetX, Y: event.offsetY, };
document.onmousemove = function (event) { var pagePos = { X: event.pageX, Y: event.pageY, };
// 为了让 div 的距离是我们点击 div 距离,所以需要用 pageX - offsetX// 否则当我们点击 div 的时候,div 的左上角会跑到我们的鼠标下oDiv.style.left = pagePos.X - offsetPos.X + "px";oDiv.style.top = pagePos.Y - offsetPos.Y + "px";
};
oDiv.onmouseup = function () {
document.onmousemove = null;
};
};
```

