Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Событие при НЕ нажатой клавише (https://javascript.ru/forum/misc/75408-sobytie-pri-ne-nazhatojj-klavishe.html)

Retro_1477 06.10.2018 14:43

Событие при НЕ нажатой клавише
 
Мне нужно чтобы выводился alert если клавиша D ИЛИ A не зажаты.

j0hnik 06.10.2018 15:23

time = setTimeout(function () {
	alert('Приехали');
}, 100);
window.onkeydown = e => {
	if(e.keyCode == 65 || e.keyCode == 68) clearTimeout(time);
};

Aetae 06.10.2018 15:25

Ловить нажатия и отжатия. Самого по себе статуса какой либо клавиши нигде нет.
Примерно так:
//в самом начале 
var KEYS = (function(parent){
  var keys = {
    pressed: {},

    isPressed: function(key){
      if(typeof key === 'string') 
        key = key.toUpperCase().charCodeAt(0);
      return key in this.pressed;
    },
    handleEvent: function(event){
      switch(event.type){
        case 'blur':
          for(var k in this.pressed){
            delete this.pressed[k];
          }
          break;
        case 'keyup':
          delete this.pressed[event.keyCode];
          break;
        case 'keydown':
          this.pressed[event.keyCode] = new Date();
          break;
      }
    }
  };
  parent.addEventListener('keyup', keys);
  parent.addEventListener('keydown', keys);
  parent.addEventListener('blur', keys);
  return keys;
}(window));
//сильно позже
if(KEYS.isPressed('A') || KEYS.isPressed('D')) 
  alert('!')

Retro_1477 06.10.2018 15:43

спасибо за хелпу


Часовой пояс GMT +3, время: 19:53.