如何在mousemove事件(左上,右上,左下和右下)上确定鼠标的方向

时间:2019-09-05 13:35:38

标签: javascript jquery

我发现了this这个问题,它回答了如何确定鼠标在上下左右移动的问题,但是我需要对角线而不是四个笔直的方向。

这是我的代码:

var deltaX = window.mxShapeRes - event.offsetX,
    deltaY = window.myShapeRes - event.offsetY;

if (Math.abs(deltaX) > Math.abs(deltaY) && deltaX > 0) {
    //left
} else if (Math.abs(deltaX) > Math.abs(deltaY) && deltaX < 0) {
    //right
} else if (Math.abs(deltaY) > Math.abs(deltaX) && deltaY > 0) {
    //up
} else if (Math.abs(deltaY) > Math.abs(deltaX) && deltaY < 0) {
    //down
}

我需要确定鼠标是左上角,右上角,左下角还是右下角。

如何使用给定的代码执行此操作?

感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:2)

您可以组合条件。例如,如果鼠标在左上方移动,则deltaX和deltaY将会> 0。

if (deltaY > 0 && deltaX > 0) {
    // top - left
} else if (deltaY > 0 &&  && deltaX < 0) {
    // top - right
} else if (deltaY < 0 &&  && deltaX > 0) {
    // bottom - left
} else if (deltaY < 0 &&  && deltaX < 0) {
    // bottom - right
}