21

スペースバーをチェックすると同時に、マウスがどの方向に移動しているか、どのくらいの距離にあるかなどを追跡する方法はありますか?

これのポイントは、スペースバー、マウスの左ボタンを押したままマウスを動かすと、Photoshopがどのようにスクロールするかを再現したいということですが、マウスの左ボタンを押したままにする必要はありません。

4

3 に答える 3

56

とを使用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()ハンドラーはそれが押されているかどうかを確認できます。

于 2010-02-12T02:05:23.970 に答える
4

キーダウンイベントを監視し、スペースバーであることを確認し、ダウンしていることを示す変数を設定し、キーアップイベントが表示されたら設定を解除する必要があります。

したがって、スペースバーが押されたことを示す変数が設定されたときに、マウスの動きを探します。

于 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 に答える