【发布时间】:2018-05-20 10:46:53
【问题描述】:
我是 JavaScript 和这个社区的新手。如果之前有人问过这个问题,我深表歉意,但我为这个主题找到的主题并没有真正帮助我解决这个特定问题。
我想实现以下工作:
- 显示图像 1。
- 如果您按左箭头键 (keydown),图像应更改为图像 2。
- 如果您停止按 (keyup),它应该会变为图像 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 只工作一次,然后我什至不能再左右切换了。 我需要使用循环来执行此操作,因为我还想在循环中执行此代码中未显示的其他事情。我将不胜感激任何类型的帮助。
【问题讨论】:
标签: javascript html onkeydown onkeyup