【发布时间】:2021-09-26 18:36:28
【问题描述】:
给定
var box = document.querySelector('.box');
document.addEventListener("click", (event) => {
if (!event.target.closest("button")) return;
if(event.target.id === "button") {
box.classList.add('move');
}
});
.box {
width: 100px;
height: 100px;
background-color: #000;
transition: transform 1s;
}
.move {
transform: translateX(20px);
}
<div class="box"></div>
<button id="button">button</button>
使用 JS Fiddle here.
我希望框的 x 位置在每次单击按钮时增加 20px。
我不确定如何继续。我最初尝试使用@KeyForms,但这需要from 和to 前缀,我不能(我认为)在其上添加变量值。这里出现了同样的问题,似乎我不能在 css 代码中有一个可以递增的变量。我是否使用了正确的功能(transition)?
我也试过
if(event.target.id === "button") {
if(!box.classList.contains('open')){
box.classList.add('open');
}else {
box.classList.remove('open');
}
}
但这似乎会反复来回移动盒子。
有没有人有任何提示或想法? (我正在添加Javascript标签,因为我怀疑这个问题可能直接在JS中解决)。
【问题讨论】:
-
在 JS 中玩
animate很有趣 :)
标签: javascript css css-transitions css-transforms