Ввод одним ключом HTML/CSS

#javascript #html #css #keyboard-input

Вопрос:

Я разрабатываю игру «Змея», чтобы попрактиковаться в своих навыках HTML/JS/CSS. Я хочу иметь экран меню, который позволяет пользователю выбирать клавиши клавиатуры, управляющие движениями влево/вправо/вверх/вниз. Я знаю, что мог бы использовать тег ввода и ограничить максимальную длину 1, но я хочу включить такие клавиши, как пробел и клавиша ввода. Есть ли простой способ разрешить пользователю просто нажимать и нажимать клавиши на клавиатуре, а также сохранять и отображать их нажатие каким-либо образом с помощью HTML/JS/CSS?

Комментарии:

1. Подождите, вы говорите, что хотите попрактиковаться в навыках JavaScript, но затем спрашиваете, можно ли это сделать с помощью HTML и CSS? Можете ли вы не использовать JavaScript? (Я также замечаю, что вопрос не помечен JavaScript…)

2. @OOPSStudio Хорошие моменты.. Я внес коррективы в свой пост на основе вашего комментария.

3. Ах, круто, спасибо! Я не пытался что-то объяснить, мне действительно было искренне любопытно. Рад, что теперь все прояснилось.

Ответ №1:

Вы можете использовать keydown и keyup .

 document.addEventListener('keydown', function(event) {
   console.log(event);
   if (event.key == 'ArrowDown') {
      event.preventDefault(); // prevent it from doing default behavior, like downarrow moving page downward
   }
});
 

Вы должны запустить event.preventDefault() , если нажатая клавиша-это клавиша, используемая вашей игрой, таким образом, она не влияет на поведение страницы (например, прокрутка страницы вниз).