当我删除新创建的元素类时,CSS3过渡不起作用

时间:2013-06-25 11:52:09

标签: javascript css3 dom css-transitions

我的所作所为:

  1. 创建一个元素,该样式包含CSS3过渡。
  2. 为其添加一个类(此类的样式包含background-color属性)。
  3. 向其添加innerHTML。
  4. 删除课程。
  5. 当我删除类

    element.classList.remove('classname')

    没有转换,但是当我设置0s延迟的超时时,它可以工作:

    setTimeout(function() { element.classList.remove('classname'); }, 0);

    为什么呢?如何避免使用setTimeout函数或使用它是否正常?

    示例:http://jsfiddle.net/JHevJ/1/

1 个答案:

答案 0 :(得分:4)

因为您在屏幕计算重新绘制元素之前删除了类。你在它首先被显示为该类之前将其删除,因此它不认为动画是必要的。

超时使得它“等待”0毫秒然后删除该类,这使得它首先显示具有类的元素,“等待”0时间,然后然后删除该类。 / p>