【发布时间】:2020-07-02 14:24:24
【问题描述】:
我正在尝试制作左右移动方块的动画。但我不明白为什么它不起作用。例如,它适用于点击事件。这是我的codepen。 谢谢
const box = document.getElementsByClassName('box')[0];
document.addEventListener('keydown', function({
keyCode,
which
}) {
const keycode = keyCode ? keyCode : which;
switch (keycode) {
case (39):
box.classList.add('move-right');
box.classList.remove('move-left');
break;
case (37):
box.classList.add('move-left');
box.classList.remove('move-right');
break;
}
});
.box {
background-color: gray;
height: 100px;
width: 100px;
transition: margin-left 0.5s cubic-bezier(0, .7, 0, 1);
transition: margin-top 0.5s cubic-bezier(0, .7, 0, 1);
}
.move-right {
margin-left: 400px;
}
.move-left {
margin-left: 0px;
}
<div class="box"></div>
【问题讨论】:
-
使用
transition: margin 0.5s ...; -
它适用于
margin-left,我只是想为margin使用,而不是添加所有边距属性。
标签: javascript css transition keydown