Проверьте, нажимается ли пробел и движется ли мышь одновременно с jQuery? - PullRequest
20 голосов
/ 12 февраля 2010

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

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

Ответы [ 3 ]

55 голосов
/ 12 февраля 2010

Вы можете использовать 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() сможет увидеть, нажата она или нет.

4 голосов
/ 12 февраля 2010

вам, вероятно, придется наблюдать за событием keydown, проверить, чтобы увидеть, что это пробел, установить переменную, говорящую, что она выключена, и сбросить ее, когда событие keyup увидено.

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

3 голосов
/ 28 сентября 2012

Это мое решение:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...