Как предотвратить прокрутку страницы при keydown на пробел?

Ссылка скопирована
2 ответов

Пример:
https://codepen.io/poylar/pen/gOKgrYG
Попробуйте табом выделить span и нажать пробел.
По сути я ожидаю только вызов алерта, без прокрутки.

Дополнительно:

Span всё ещё document.body:

window.addEventListener('keydown', function(e) { 	console.log(e.target.tagName)   if(e.keyCode == 32 && e.target === document.body) {   	alert('k')     e.preventDefault();   } });

window.addEventListener('keydown', function(e) { console.log(e.target.tagName) if(e.keyCode == 32 && e.target === document.body) { alert('k') e.preventDefault(); } });

  • А если у меня внутри спана еще что-то лежит?
  • godsplane, например? Всё кроме элементов на которых может быть фокус, это document.body:
    snippet
  • Владимир, окей. у меня была проблема что внутри спана еще висит свг и условие видимо из-за этого не отрабаывало.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

Для предотвращения прокрутки страницы при нажатии клавиши "пробел" (Space) можно использовать следующий код на JavaScript:

```html

Предотвращение прокрутки страницы при нажатии пробела

window.addEventListener('keydown', function(e) {
if (e.key === ' ') {
e.preventDefault();
}
});

```

Этот код добавляет слушатель события keydown к окну браузера. При нажатии клавиши "пробел" происходит вызов функции, которая вызывает метод `preventDefault()`, который отменяет стандартное действие браузера (прокрутку страницы). Таким образом, страница не будет прокручиваться при нажатии клавиши "пробел".

Надеюсь, это поможет в решении вашей проблемы! Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (1) Ответить на вопрос
Сергей Миронов

Для предотвращения прокрутки страницы при нажатии клавиши "пробел" (key down on space) вам необходимо добавить обработчик события keydown на элемент body и проверить, была ли нажата именно клавиша "пробел". Если это так, то нужно вызвать метод preventDefault() для события, чтобы предотвратить стандартное поведение браузера.

Пример кода на JavaScript:

document.body.addEventListener("keydown", function(event) {
  if (event.keyCode === 32) { // проверяем, что нажата клавиша "пробел"
    event.preventDefault(); // предотвращаем стандартное действие браузера
  }
});

document.body.addEventListener("keydown", function(event) { if (event.keyCode === 32) { // проверяем, что нажата клавиша "пробел" event.preventDefault(); // предотвращаем стандартное действие браузера } });

Этот код добавляет обработчик события keydown на элемент body. Когда пользователь нажимает клавишу "пробел", код проверяет код клавиши события. Если это код клавиши "пробел" (код 32), то вызывается метод preventDefault(), который отменяет стандартное действие браузера (прокрутку страницы).

Теперь, когда пользователь нажимает клавишу "пробел", страница не будет прокручиваться. Не забудьте добавить этот код внутри тега перед закрывающим тегом .

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно