更改动画持续时间 CSS3 在 Chrome 中不起作用

Posted

技术标签:

【中文标题】更改动画持续时间 CSS3 在 Chrome 中不起作用【英文标题】:Change animation duration CSS3 not working in Chrome 【发布时间】:2014-09-11 11:32:39 【问题描述】:

我有这个demo。当您单击 div 时,动画必须更改,但它在 Chrome 上不起作用。

这是我的 js 代码:

var seconds = 1;
function ChangeSpeed()
    seconds++;
    document.getElementById('rectangle').style.animationDuration = seconds+"s";

这是我的 CSS:

div#rectangle
    height:100px;
    width:100px;
    background:black;
    -webkit-animation: ShapeRotate; 
    -webkit-animation-duration: 1s; 
    -webkit-animation-timing-function: linear; 
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-play-state: running;


@-webkit-keyframes ShapeRotate 
    from 
      -webkit-transform: rotate(0deg);
    
    to  
      -webkit-transform: rotate(360deg);
    

我也在 Firefox 上尝试了这个demo,它确实有效!

我不明白为什么这在 Chrome 上不起作用。

我的 Chrome 版本是 35.0.1916.153 (Build 官方 274914) m

【问题讨论】:

它适用于我的 Chrome (24)。 Fiddle. 是的,它适用于旧版 Chrome。我用我的 JSFiddle 在这个站点上运行了一个测试:browserling.com。我应该将此作为错误报告给 Google Chrome 团队吗? 【参考方案1】:

我想我发现了你的错误。

在您的小提琴上,代码如下所示

var seconds = 1;
function ChangeSpeed()
    seconds++;
    document.getElementById('rectangle').style.mozAnimationDuration = seconds+"s";

我认为您应该添加对所有浏览器的兼容性。你的错误在于:

style.mozAnimationDuration

你应该把 style.webkitAnimationDuration 用于 Chrome 兼容性等其他浏览器。

【讨论】:

【参考方案2】:

2014 年 8 月 3 日报告了一个错误:link。

已修复并于 2015 年 2 月 2 日发布:Blink Revision 189311。

PS : 使用 chrome://version/ 了解您的眨眼版本。

【讨论】:

以上是关于更改动画持续时间 CSS3 在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 CSS3 动画在 Google Chrome 中不流畅(但在其他浏览器上非常流畅)?

CSS3颜色过渡在Chrome中不起作用

为啥这个 CSS3 动画在 MS Edge 或 IE11 中不起作用?

CSS3 动画不起作用

CSS3 calc(100%-88px) 在 Chrome 中不起作用 [重复]

CSS3 动画在 Firefox 中不起作用