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

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

这一点是我要复制Photoshop按住空格键,鼠标左键并移动鼠标时的滚动方式,而无需按住鼠标左键。

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

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

那么,当设置该变量指示空格键被按下时,您将查找鼠标移动。

这是我的解决方案:

 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插件。