Подтвердить что ты не робот

Проверьте, нажата ли пробел, и мышь перемещается одновременно с jQuery?

Есть ли способ проверить, находится ли пробел и в то же время отслеживать, какое направление движется мышь, и как далеко и т.д.

Точка в том, что я хочу реплицировать, как Photoshop прокручивается, когда вы держите пробел, левую кнопку мыши и вы перемещаете мышь, но без необходимости удерживать левую кнопку мыши.

4b9b3361

Ответ 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.