【发布时间】:2011-01-15 23:49:03
【问题描述】:
有没有办法检查空格键是否同时跟踪鼠标移动的方向和距离等。
我想复制当您按住空格键、鼠标左键和移动鼠标时 Photoshop 的滚动方式,但不必按住鼠标左键。
【问题讨论】:
标签: javascript jquery javascript-events
有没有办法检查空格键是否同时跟踪鼠标移动的方向和距离等。
我想复制当您按住空格键、鼠标左键和移动鼠标时 Photoshop 的滚动方式,但不必按住鼠标左键。
【问题讨论】:
标签: javascript jquery javascript-events
您可以使用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() 处理程序可以查看它是否被按下。
【讨论】:
这是我的解决方案:
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 插件。
【讨论】:
您可能必须注意 keydown 事件,检查它是否是空格键,设置一个表示它已关闭的变量,当看到 keyup 事件时取消设置。
那么,当设置该变量以指示按下空格键时,您将寻找鼠标移动。
【讨论】: