js onkeydown 事件能检测两个按键同时按下吗? 比如我同时按下 a 和 b?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js onkeydown 事件能检测两个按键同时按下吗? 比如我同时按下 a 和 b?相关的知识,希望对你有一定的参考价值。

可以监听到两个不同的keyCode,a和b不能同时按下,你认为的同时,在计算机看来还是有先后顺序,所以监听到的是a和b都触发了,但每次事件只有一个keyCode,所以你要检测时需要自行记录下状态,keydown记录下按键,keyup再取消这个按键,此时可以判断另一个按键是否在记录中,从而判断两个按键同时按
另外,shift ctrl等这些组合键可以直接在其他按键的事件中获取到状态,不需要自己记录追问

如果我先按下a然后在按下b呢

追答

b的事件中看下a是否被打标了,就知道是否按a和b了,先按哪个都一样,按的时候记录一个变量里,并判断当前按住的按键,抬起时,把按键从记录里删掉就可以了

参考技术A 可以,因为你不可能同时按下,他们的键码不一样追问

其实是想问上下左右的按键,想着控制一个箱子行走,同时按下上左就让箱子往上左方向走

上下左右的都完成了

追答

比如按下上键后在上键事件里监听是否按下了左键,上键top减少,左键left减少,他们的运动合成就是你想要的。

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

Atitit.android js 的键盘按键检测BackHome键和Menu键事件

 

 

1. onKeyDown

@Override

 public boolean onKeyDown(int keyCode, KeyEvent event) {

  

  if (keyCode == KeyEvent.KEYCODE_MENU) { 

   // 在这里做你想做的事情

  // super.openOptionsMenu();  // 调用这个,就可以弹出菜单

webView.loadUrl("javascript:KEYCODE_MENU_handle()");  

  

  }   

  return true; // 最后,一定要做完以后返回 true,或者在弹出菜单后返回true,其他键返回super,让其他键默认

 }

 

 

 

function KEYCODE_MENU_handle()

{

alert(" ---menu handle start");

}

 

作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

2. Other keycode  check

 

document.onkeydown=function(event){

var e = event || window.event || arguments.callee.caller.arguments[0];

alert("keycode:"+e.keyCode);

 

};

 

2.1.1. android处理BackHome键和Menu键事件() - wainiwann - 博客园

2014526 - android处理BackHome键和Menu键事件() @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BAC.

 

 

以上是关于js onkeydown 事件能检测两个按键同时按下吗? 比如我同时按下 a 和 b?的主要内容,如果未能解决你的问题,请参考以下文章

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

键盘事件

js键盘事件的使用

用js怎么写一个回车键盘事件?

js学习笔记27----键盘事件

JS 监听键盘上某个键的长按事件。