如何使用Javascript检查当前鼠标按钮状态

时间:2012-08-31 05:39:50

标签: javascript mousedown mouseup

我希望鼠标处于关闭状态关闭状态

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;

function mouseMove(ev) {

    mouseState="";
    //How can I know the state button of mouse button from here 
    if(mouseState=='down') {
        console.log('mouse down state')
    }

    if(mouseState=='up')  {
        console.log('mouse up state')
    }
}

function mouseDown(ev) {
    console.log('Down State you can now start dragging');
    //do not write any code here in this function
}

function mouseUp(ev) {
    console.log('up state you cannot drag now because you are not holding your mouse')
    //do not write any code here in this function
} 

当我移动鼠标时,程序应该在控制台上向上或向下显示所需的mouseState值

2 个答案:

答案 0 :(得分:3)

您可以查看MouseEvent.which属性。

function mouseMove(ev) {
    if(ev.which==1) {
        console.log('mouse down state with left click');
    } else if(ev.which==3)  {
        console.log('mouse down state with right click');
    } else {
        console.log('mouse update');
    } 
}

答案 1 :(得分:2)

你只需要为它创建一个变量。

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;
var mouseState = "up";

function mouseMove(ev) {

    //How can I know the state of mouse from here 
    if(mouseState=='down') {
        console.log('mouse down state')
    }

    if (mouseState=='up')  {
        console.log('mouse up state')
    }
}

function mouseDown(ev) {
    mouseState = "down";
    console.log('Down State you can now start dragging');
    //do not write any code here in this function
}

function mouseUp(ev) {
    mouseState = "up";
    console.log('up state you cannot drag now because you are not holding your mouse')
    //do not write any code here in this function
}

您应该通过将其登录到控制台来查看“mousemove”上的事件。那里可能有一个属性显示鼠标的状态,就像按键事件有一个属性,告诉你是否按下了shift按钮。但这可能不是跨浏览器兼容的。