// 0 left, 2 right, 1 middle, other.. extra buttons, gaming mouses
var buttonsArray = [false, false, false, false, false, false, false, false, false];
var mousePressed = false;
document.onmousedown = function(e) {
buttonsArray[e.button] = true;
mousePressed = true;
};
document.onmouseup = function(e) {
buttonsArray[e.button] = false;
mousePressed = false;
};
document.oncontextmenu = function() {
return false;
}
Объяснение: Когда мышь не работает, мы меняем значение true на нажатую кнопку в нашем массиве кнопок.
Когда мышь поднята, мы изменяем на ложь нажатой кнопки на ложь.
Теперь мы можем установить, какая кнопка нажата более точно, но у нас есть проблема с щелчком правой кнопкой мыши ... потому что с помощью этой кнопки мы открываем контекстное меню в браузере, и это ускользает от нашего контроля ... поэтому мы отключаем контекстное меню для того, чтобы правильно обнаружить щелчок правой кнопкой мыши. Если мы этого не сделаем, мы должны разрешить щелчок левой кнопкой мыши тоже ... и это осложнение, которое избегает этого ответа.
Для упрощения мы можем добавить еще одну переменную mousePressed
и пометить, если мышь нажата или нажата.
Прекрасно работает на Chrome, я не тестировал его в другом браузере, но я думаю, что это нормально в Firefox и Opera тоже ... IE ??? Мне все равно, IE.
Наслаждайся этим!