如何使用Javascript检查当前鼠标按钮状态
我希望鼠标处于向下状态或向上状态如何使用Javascript检查当前鼠标按钮状态,javascript,mousedown,mouseup,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=='do
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值您只需为它创建一个变量即可
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”上的事件登录到控制台来查看它。可能有一个属性显示鼠标的状态,就像keypress事件有一个属性告诉您是否按下了shift按钮一样。但这可能不兼容跨浏览器。您可以检查
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');
}
}
这一问题与环境有关。IE也出现了同样的问题。有什么解决办法吗?我想知道鼠标按钮的状态,因为这个问题。非常感谢。它真的对我有效。对不起,现在我不使用这个解决方案,因为它不能解决IE。还有其他想法吗?Bzzt。Mousevent.which属性说明哪个按钮导致了最近的“mousedown”或“mouseup”事件。它被简单地复制到“mousemove”事件中。它不反映鼠标按钮的当前状态。它的名字似乎表明它确实如此——我热切地希望它如此——但事实并非如此。(这不仅仅是IE或浏览器版本问题:-)