如何防止箭头键而不是鼠标滚动?(How do I prevent scrolling with ar

2019-06-24 08:50发布

由于我使用jQuery,通过任何解决办法工作了。 理想情况下,我想知道这两个,虽然。

我已经有我的网页上绑定到另一个功能箭头键(使用jQuery),但让他们导致页面中除了滚动,使我的问题。

我可能已经知道这一次,但我不记得它了。

Answer 1:

添加文档级按键处理做的伎俩!

var ar=new Array(33,34,35,36,37,38,39,40);

$(document).keydown(function(e) {
     var key = e.which;
      //console.log(key);
      //if(key==35 || key == 36 || key == 37 || key == 39)
      if($.inArray(key,ar) > -1) {
          e.preventDefault();
          return false;
      }
      return true;
});


Answer 2:

在某些情况下,例如。 当你不actualy有一个元素你关注的,只是一些方面你必须点击,你可能没有在处理太多的控制和防止该事件在全球范围内可充其量有点片状(因为我发现硬盘的方式)。

在这些情况下,最简单的解决方案是绑定的点击甚至控制按钮和重点,你定位-9000px到左侧空输入元素上。

然后,您可以可靠地阻止通过的keydown事件,也不要担心,因为输入元件上的默认行为阻止默认行为或其他全球听众只会将光标移动到左侧和右侧。



Answer 3:

如果您添加文档级按键处理,将防止在页面上正常滚动,在任何时候,不要只在你的元素具有焦点,这可能是不希望的效果。



文章来源: How do I prevent scrolling with arrow keys but NOT the mouse?