21

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

重点是我想复制当您按住空格键、鼠标左键并移动鼠标时 Photoshop 的滚动方式,但不必按住鼠标左键。

4

3 回答 3

56

您可以使用keydown()andkeyup()来跟踪是否按下了空格键,并在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()处理程序可以查看它是否被按下。

于 2010-02-12T02:05:23.970 回答
4

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

因此,当设置该变量以指示按下空格键时,您将寻找鼠标移动。

于 2010-02-12T02:05:45.670 回答
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 插件。

于 2012-09-28T13:49:30.243 回答