0

我试图在 js 中的某个事件之后显示无限旋转的图像。
在 Chrome 26、Firefox 19 中完美运行,但在 Opera 12(最新)中失败。

我使用 style="display: none" 的初始图像,如下所示:

<img src="http://example.com/img.png" id="test" style="display: none">

然后我显示图像(删除显示:无):

$('#test').show();

预期行为:请参阅旋转图像。Opera 中不会发生旋转。这是一个 Opera 错误吗?我知道我可以通过在显示图像后使用类来启动动画,但我想弄清楚当图像最初设置动画时如何触发它。显示初始图像时动画效果很好(显示:块)。

这是 jsFiddle 示例:http: //jsfiddle.net/vdJLL/

我用于旋转的 CSS:

#test {
  -webkit-animation: rotate 5s linear 0s infinite normal;
  -moz-animation: rotate 5s linear 0s infinite normal;
  -o-animation: rotate 5s linear 0s infinite normal;
  -ms-animation: rotate 5s linear 0s infinite normal;
  animation: rotate 5s linear 0s infinite normal;
}

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

@-moz-keyframes rotate {
  from {
    -moz-transform: rotate(0deg);
  }
  to { 
    -moz-transform: rotate(360deg);
  }
}

@-o-keyframes rotate {
  from {
    -o-transform: rotate(0deg);
  }
  to { 
    -o-transform: rotate(360deg);
  }
}

@-ms-keyframes rotate {
  from {
    -ms-transform: rotate(0deg);
  }
  to { 
    -ms-transform: rotate(360deg);
  }
}

@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to { 
    transform: rotate(360deg);
  }
}
4

1 回答 1

1

我刚刚遇到了类似的问题 - 我一直在尝试 js display:none other div (这甚至没有影响动画)并让 Opera 动画冻结(更有趣的是,可以通过进入蜻蜓并重新启用动画风格的一部分) - 所以这听起来确实像一个 Opera 错误。

无论如何,我刚刚学到了一种解决方法 - 而不是display:none,它将与

visibility:hidden; height: 0px;

另请参阅您的 jsfiddle 更新http://jsfiddle.net/vdJLL/3/

于 2013-11-25T02:23:29.390 回答