我正在制作一个游戏
当用户单击右键并按住左键后,我需要执行一些操作。
如何检测这种行为?
我正在制作一个游戏
当用户单击右键并按住左键后,我需要执行一些操作。
如何检测这种行为?
JSfiddle: https://jsfiddle.net/mkarajohn/pd725ch6/5/
的意思是JSfiddle网站上的一个链接,可以访问 https://jsfiddle.net/mkarajohn/pd725ch6/5/。该链接涉及IT技术方面的内容。var rightMouseClicked = false;
function handleMouseDown(e) {
//e.button describes the mouse button that was clicked
// 0 is left, 1 is middle, 2 is right
if (e.button === 2) {
rightMouseClicked = true;
} else if (e.button === 0) {
//Do something if left button was clicked and right button is still pressed
if (rightMouseClicked) {
console.log('hello');
//code
}
}
console.log(rightMouseClicked);
}
function handleMouseUp(e) {
if (e.button === 2) {
rightMouseClicked = false;
}
console.log(rightMouseClicked);
}
document.addEventListener('mousedown', handleMouseDown);
document.addEventListener('mouseup', handleMouseUp);
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
MouseEvent.buttons
。<element>.addEventListener("mousedown", function(event){
if ((event.buttons & 3) === 3){
//Do something here
}
}, true);
这个功能比较新,你可能需要实现备用方法来记录鼠标按钮的状态。
window.oncontextmenu = function () {
showCustomMenu();
return false; // cancel default menu
}
在右键单击时,每个浏览器都有默认菜单,可用于刷新页面、打印、保存等等,但您可以尝试使用此方法,可能会阻止默认操作并添加自定义操作。如果需要帮助,请写下答案。
如果需要右键点击,请使用oncontextmenu
,如果需要左键点击,请设置click
,如果需要禁用它们的默认行为,则可以这样做,例如:
var left = 0,
right = 0;
document.onclick = function() {
console.log(++left);
return false;
};
document.oncontextmenu = function() {
console.log(++right);
return false;
};
click
事件。作者希望在两个按钮都按住时收到通知。 - weaknespase嗨
请检查下面的代码
<!doctype html>
<html lang="en">
<head>
<input type='button' value='Click Me!!!' id='btnClick'/>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$('#btnClick').mousedown(function(event){
switch (event.which) {
case 1:
alert('Left mouse button pressed');
break;
case 2:
alert('Middle mouse button pressed');
break;
case 3:
alert('Right mouse button pressed');
break;
default:
break;
}
});
});
</script>
</body>
</html>
更多参考请查看http://www.jquerybyexample.net/2011/04/find-which-mouse-button-clicked-using.html
尝试
var hold=false;
function check(e) {
if(e.button==2) hold=true;
if(e.button==0 && hold) console.log('action');
}
function release(e) {
if(e.button==2) hold=false;
}
function noContext(e) { e.preventDefault(); }
.box { width: 100px; height: 100px; border: 1px solid black;}
Hold right mouse button and press left (on sqare)
<div class="box"
onmousedown="check(event)"
onmouseup="release(event)"
oncontextmenu="noContext(event)"
></div>