【问题标题】:Check if the spacebar is being pressed and the mouse is moving at the same time with jQuery?检查空格键是否被按下并且鼠标是否与jQuery同时移动?
【发布时间】:2011-01-15 23:49:03
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery javascript-events


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这是我的解决方案:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多