$("html").keydown(function(event){
if(event.which == "37")
$("#hero").animate({"left" : "-=30px"});
if(event.which == "39")
$("#hero").animate({"left" : "+=30px"});
if(event.which == "38")
$("#hero").animate({"top" : "-=30px"});
if(event.which == "40")
$("#hero").animate({"top" : "+=30px"});
});
Кажется, что очередь всех нажатых клавиш , и мне нужно, чтобы эта очередь была пустой при изменении направления. Потому что, если я удерживаю левую клавишу нажатой в течение нескольких секунд, а затем нажимаю вправо, «#hero» будет уходить влево в течение длительного времени, а затем идти вправо.(JQuery) Перемещение элемента при нажатии клавиш?
Это работает, но что, если я хочу идти по диагонали? – user1091856
Для движущегося элемента диагонально изменить значения 'left' и' top' вместе. – ShankarSangoli
Как? Каждый раз, когда вызывается функция события, свойство keyCode содержит только одно значение, как я могу проверить, нажаты ли обе клавиши (вверху и слева)? – user1091856