Отключить прокрутку страницы со стрелками?

#javascript #jquery #html #user-interface

#javascript #jquery #HTML #пользовательский интерфейс

Вопрос:

Если вы создаете игру или интерактивный веб-сайт и хотите использовать клавиши со стрелками в качестве функции страницы. (например, перемещение чего-либо на экране)

Можно ли отключить прокрутку страницы с помощью клавиш со стрелками?

Ответ №1:

 $(document).ready(function() {
    $(document).keydown(function(Event) {
        if(Event.which == 38 || Event.which == 40) {
            Event.preventDefault();
            // Do whatever you want
        }
    });
});
  

Ответ №2:

Поскольку вы отметили jQuery в своем вопросе, я предоставлю решение jQuery.

По сути, вам нужно захватить используемый ключ, а затем использовать preventDefault() метод для события. Это остановит прокрутку браузера при нажатии клавиш со стрелками. Вот jsFiddle, показывающий, что он работает: http://jsfiddle.net/KMeGc /

И вот код jQuery для вашей справки:

 $(document).keydown(function(e) {
    var key = e.keyCode;
    if(key == 37 || key == 38 || key == 39 || key == 40)
       e.preventDefault(); 

    switch(key)
    {
        case 37:
            // Code to run for left arrow key here...
            break;

        case 38:
            // Code to run for up arrow key here...
            break;

        case 39:
            // Code to run for right arrow key here...
            break;

        case 40:
            // Code to run for down arrow key here...
            break;
    }    
});
  

Ответ №3:

 $(window).keydown(function(ev){
    // check the arrow keycodes here
    ev.preventDefault();
});