Я новичок в JavaScript и в этом сообществе.Я прошу прощения, если об этом уже спрашивали, но темы, которые я нашел для этой темы, не помогли мне с этой конкретной проблемой.
Я хотел бы добиться следующей работы:
- Отображается изображение 1.
- При нажатии клавиши со стрелкой влево (нажатие клавиши) изображение должно измениться на изображение 2.
- Если перестать нажимать (нажатие клавиши), оно должно измениться на изображение 3.
- Если вы нажмете клавишу со стрелкой вправо, она должна измениться на изображение 4, а при включении - на изображение 5.
Код:
<img src="img/image1.png" id="myIMG">
и
var imgs = ["img/image5.png", "img/image3.png", "img/image1.png", "img/image4.png"];
function changeIMG(dir) {
var img = document.getElementById("myIMG");
img.src = imgs[imgs.indexOf(img.src) + (dir || 1)] || imgs[dir ? imgs.length - 1 : 0];
}
var keys = {};
$(document).keydown(function (event) {
keys[event.which] = true;
}).keyup(function (event) {
if(e.keyCode == 37){
delete keys[37];
changeIMG(+1);
}
else if(e.keyCode == 39){
delete keys[39];
changeIMG(+2);
}
});
function IMGLoop() {
if (keys[37]) {
changeIMG(+3);
} else if (keys[39]) {
changeIMG(+4);
}
setTimeout(IMGLoop, 20);
}
IMGLoop();
Проблема описана ниже.Keyup ничего не делает, и keydown работает только один раз, и тогда я даже не могу больше переключаться между левым и правым.Мне нужно сделать это с циклом, потому что я также хочу делать другие вещи в цикле, которые не отображаются в этом коде.Буду признателен за любую помощь.