Проверьте, нажата ли пробел, и мышь перемещается одновременно с jQuery?
Есть ли способ проверить, находится ли пробел и в то же время отслеживать, какое направление движется мышь, и как далеко и т.д.
Точка в том, что я хочу реплицировать, как Photoshop прокручивается, когда вы держите пробел, левую кнопку мыши и вы перемещаете мышь, но без необходимости удерживать левую кнопку мыши.
Ответы
Ответ 1
Вы можете использовать keydown()
и keyup()
, чтобы отслеживать, нажата ли пробельная или нет, и посмотрите на это состояние в обработчике событий mousemove()
. Например:
var space = false;
$(function() {
$(document).keyup(function(evt) {
if (evt.keyCode == 32) {
space = false;
}
}).keydown(function(evt) {
if (evt.keyCode == 32) {
space = true;
console.log('space')
}
});
});
И тогда ваш обработчик mousemove()
может видеть, нажата ли она или нет.
Ответ 2
вам, вероятно, придется следить за событием keydown, проверить, что это пробел, установить переменную, говорящую о ней, отключить ее при обнаружении события keyup.
Итак, тогда вы будете искать движения мыши, когда эта переменная была установлена, указывая на нажатие клавиши пробела.
Ответ 3
Это мое решение:
var allowed = true;
$(document).ready(
function () {
$(document).bind('keydown', 'space', function () {
if (!allowed) return;
allowed = false;
$('#viewport').
dragscrollable();
});
$(document).bind('keyup', 'space', function () {
allowed = true;
$('#base').off('mousedown');
return false;
});
});
Работает с jQuery и плагином Dragscrollable.