我在css中有一个简单的动画类:
.slides-animation {
-webkit-transition: 1s ease-in-out;
-moz-transition: 1s ease-in-out;
-o-transition: 1s ease-in-out;
transition: 1s ease-in-out;
}
所以我可以使用classList.add
和classList.remove
在div中切换它。它是正常活动的,但我想删除它,调用一个函数并再次添加它。
element.classList.remove("slides-animation");
moveNow(element); // Update the translate(x,y) coordinates of the element.
element.classList.add("slides-animation");
但它没有按预期工作。动画仍在那里。我设法通过以这种方式添加超时来删除它:
element.classList.remove("slides-animation");
moveNow(element); // Update the translate(x,y) coordinates of the element.
setTimeout(function(){element.classList.add("slides-animation")}, 0)
现在,元素将转换为没有动画的新(x,y)。这是怎么回事?
我已经读过,通过这种方式使用超时,你将确保一个函数将在另一个之后执行。但是,在moveTo(element)
返回之前,该课程是如何再次添加的?