javascript - 为什么不能使用 JavaScript 改变 CSS 动画的速度

标签 javascript html css animation

我制作了一个 CSS 动画和一些 JavaScript 代码来更新动画速度。看来我的 JavaScript 代码是有效的,但是一旦在 CSS 中设置了速度,它就不能再更新了。如果我不在 CSS 中设置速度,则 JavaScript 可以正常工作。

#circle1 {
   width: 200px;
   height: 200px;
   background: blue;
   -webkit-animation: upDown 5s infinite;  /* Safari and Chrome */
   animation: upDown 5s infinite;
}

如果删除上面 css 中的最后两行,则以下 javascript 有效

document.getElementById('circle1').style.webkitAnimationName = 'upDown';
document.getElementById('circle1').style.webkitAnimationDuration = '40s';

有关更多详细信息,请参阅此 JS fiddle http://jsfiddle.net/usJv8/1/

最佳答案

看起来这是一个渲染问题(您需要重新渲染元素以可视化更改)。我带来了一个“解决方案”,我不知道它是否适合你,因为它基于删除元素然后将元素重新附加到 DOM:

document.getElementById('circle1').style.webkitAnimationDuration = '40s';

var aux = document.getElementById('circle1');
document.getElementById("maincenter").removeChild(document.getElementById('circle1'));
document.getElementById('maincenter').appendChild(aux);

你可以看到它在这里工作:http://jsfiddle.net/usJv8/9/ (注意我在中心标签中添加了一个 id)

关于javascript - 为什么不能使用 JavaScript 改变 CSS 动画的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289976/

相关文章:

javascript - 获取函数类的参数

html - CSS渐变产生虚线

css - 通过 CSS 进行流体布局 block 定位,无需任何高度知识即可响应式布局网站

javascript - jquery 如何将移动的无序列表项返回到列表中的原始位置?

css - 创建剪辑路径波 css 边缘

javascript - 我如何处理两级嵌套 promise 的结果?

javascript - 如何在不知道其键的情况下获取枚举值?

javascript - 如何通过 javascript 手动显示选项卡加载指示器?

php - 防止 str_replace 注释字符串中的 php 代码

javascript - 如何通过angularjs中的查询参数重定向url?