スペースバーを確認し、同時にマウスの移動方向と移動距離を追跡する方法はありますか?.
このことのポイントは、スペースバーと左マウスボタンを押しながらマウスを動かすと、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プラグインで動作します。