检查空格键是否被按下,鼠标是否同时使用jQuery移动?

时间:2010-02-12 02:02:29

标签: javascript jquery javascript-events

有没有办法检查空格键是否同时跟踪鼠标的移动方向以及距离等等。

这就是我要复制当你按住空格键,鼠标左键并移动鼠标时Photoshop滚动的方式,而不必按住鼠标左键。

3 个答案:

答案 0 :(得分:55)

您可以使用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()处理程序可以查看它是否被按下。

答案 1 :(得分:4)

你可能必须注意keydown事件,检查它是否为空格键,设置一个变量表示它已关闭,在看到keyup事件时取消设置。

所以,当设置该变量指示空格键被按下时,你会寻找鼠标移动。

答案 2 :(得分: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插件。