Подтвердить что ты не робот

Отключить прокрутку вниз при нажатии пробела на Firefox

Я хочу отключить прокрутку вниз, когда я нажал пробел. Это происходит только в firefox.

Я уже использую переполнение: скрытый и метатег.

Спасибо.

4b9b3361

Ответ 1

Это должно сделать трюк. В нем указано, что при нажатии на пробел на странице/документе это не просто предотвращает его поведение по умолчанию, а возвращается к исходному состоянию.

return false, кажется, включает preventDefault. Источник

Проверить JQuery API для получения дополнительной информации о событиях, связанных с keydown - http://api.jquery.com/keydown/

window.onkeydown = function(e) { 
    return !(e.keyCode == 32);
};

Пример JQuery

$(document).keydown(function(e) {
    if (e.which == 32) {
        return false;
    }
});

ИЗМЕНИТЬ

Как сказал @amber-de-black, "вышеуказанный код блокирует нажатие клавиши пробела на вводе HTML". Чтобы исправить это, вы e.target, где именно вы хотите заблокировать пробел. Это может помешать пробелу блокировать другие элементы, такие как входы HTML.

В этом случае мы указываем пробел вместе с целью тела. Это предотвратит блокировку входов.

window.onkeydown = function(e) {
  if (e.keyCode == 32 && e.target == document.body) {
    e.preventDefault();
  }
};

ПРИМЕЧАНИЕ. Если вы используете JQuery, используйте e.which вместо e.keyCode Источник.

The event.which property normalizes event.keyCode and event.charCode

JQuery действует как нормализатор для множества событий. Если это неожиданно для всех, кто это читает. Я рекомендую прочитать документацию Объект события.

Ответ 2

Обнаружить, нажата ли пробел. Если это так, то предотвратите его поведение по умолчанию.

document.documentElement.addEventListener('keydown', function (e) {
    if ( ( e.keycode || e.which ) == 32) {
        e.preventDefault();
    }
}, false);

Ответ 3

Вы пытались захватить событие keydown в javascript? Если вы используете jQuery, вы можете прочитать больше о захвате ключевых событий здесь: http://api.jquery.com/keydown/

Если вы этого не сделаете, вы можете захватить и проигнорировать нажатие клавиши пробела, как описано здесь: fooobar.com/info/424637/...