Не увеличивает позицию - PullRequest
0 голосов
/ 30 мая 2019

У меня есть следующий код, я хочу переместить поле, нажав мою стрелку (в данном случае стрелку влево), но добавляю только один раз в свойство left. Если я нажимаю несколько раз на левую стрелку, он остается на том же месте. Не могу понять, почему ..

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';
    }
}

1 Ответ

2 голосов
/ 30 мая 2019

Это потому, что вы каждый раз сбрасываете значение 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';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...