javascript - 它不会增加位置

标签 javascript css events

我有以下代码,我想移动一个框我的按下箭头(在本例中为左箭头)但只向左属性添加一次。如果我多次按下左箭头,它会保持在同一个位置。想不通为什么..

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

关于javascript - 它不会增加位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56382126/

相关文章:

javascript - 处理嵌套表单中的许多隐藏字段

javascript - 每次按下 TAB 键选择不同的单词

javascript - Sequelize 树中的连接数据

javascript - 在 HTML 中嵌入标记 - 我如何在 Javascript 中知道 .wav 文件已播放完毕?

javascript - 如何计算网格上所有可能的路径

javascript - 如何使用适合屏幕尺寸的渐变颜色为文本着色并在新行上继续颜色?

css - IE + cufon 中的不透明度

html - 我如何使用可变 ammount 内联 block div 覆盖 100% 的屏幕?

c - 检测库内应用程序的键盘和鼠标事件

javascript - 如何找到任何元素的绑定(bind)事件