我已经实现了动画暂停,如下所述: 如何使用 JavaScript 暂停和恢复 CSS3 动画?
这是我用于旋转元素的 CSS:
.is-rotating{
-webkit-animation: circle 55s linear infinite;
-moz-animation: circle 55s linear infinite;
-ms-animation: circle 55s linear infinite;
animation: circle 55s linear infinite;
}
我将一个is-paused
类切换到有问题的元素onmouseover
:
.is-paused{
-webkit-animation-play-state:paused;
-moz-animation-play-state:paused;
-o-animation-play-state:paused;
animation-play-state:paused;
}
当我用 JS (onmouseout) 删除这个类时,旋转动画会重置到“原点”。有时会,有时不会。这发生在 webkit(OSX 上的 Chrome 和 Safari)中,在 FF 中运行良好。
我知道这animation-play-state
是一个实验性功能,但MDN 说它应该可以在 webkit 中正常工作。有没有人对如何实现 webkit 浏览器有任何想法?
更新:这是 CSS 的其余部分:
@-webkit-keyframes circle {
from { -webkit-transform:rotate(0deg); }
to { -webkit-transform:rotate(360deg); }
}
@-webkit-keyframes inner-circle {
from { -webkit-transform:rotate(0deg); }
to { -webkit-transform:rotate(-360deg); }
}
@-moz-keyframes circle {
from { -moz-transform:rotate(0deg); }
to { -moz-transform:rotate(360deg); }
}
@-moz-keyframes inner-circle {
from { -moz-transform:rotate(0deg); }
to { -moz-transform:rotate(-360deg); }
}
@-ms-keyframes circle {
from { -ms-transform:rotate(0deg); }
to { -ms-transform:rotate(360deg); }
}
@-ms-keyframes inner-circle {
from { -ms-transform:rotate(0deg); }
to { -ms-transform:rotate(-360deg); }
}
@keyframes circle {
from { transform:rotate(0deg); }
to { transform:rotate(360deg); }
}
@keyframes inner-circle {
from { transform:rotate(0deg); }
to { transform:rotate(-360deg); }
}