У меня есть следующий код: я хочу переместить поле, нажимая стрелку (в данном случае стрелку влево), но добавляю только один раз к левому свойству. Если я нажму несколько раз на стрелку влево, она останется на том же месте. Не могу понять почему..
const box = document.querySelector('div');
const body = document.querySelector('body');
body.addEventListener('keydown', move);
function move(event) {
let ddd = event.which || event.keyCode;
let left = 0;
box.style.position = 'absolute';
if (ddd === 37) {
left += 5;
box.style.left = left + 'px';
}
}
Это потому, что вы каждый раз сбрасываете значение left
. Храните left
вне move
, чтобы предотвратить его сброс.
const box = document.querySelector('div');
const body = document.querySelector('body');
let left = 0;
body.addEventListener('keydown', move);
function move(event) {
let ddd = event.which || event.keyCode;
box.style.position = 'absolute';
if (ddd === 37) {
left += 5;
box.style.left = left + 'px';
}
}
@GrecA Круто! Я рад, что смог помочь. Удачи вам в игре!
Большое спасибо, вы сэкономили мне много времени, искал в гугле, так и не нашел правильного ответа. Я пытаюсь сделать игру про покемонов и хочу перемещать персонажа стрелками.