我正在使用 CSS3 动画,并且我希望能够移动到动画中的特定位置。例如,如果 CSS 看起来像这样(并假装我使用了所有正确的前缀):
@keyframes fade_in_out_anim {
0% { opacity: 0; }
25% { opacity: 1; }
75% { opacity: 1; }
100% { opacity: 0; }
}
#fade_in_out {
animation: fade_in_out_anim 5s;
}
然后我希望能够停止动画,并将其移动到 50% 标记。我猜理想的 JavaScript 应该是这样的:
var style = document.getElementById('fade_in_out').style;
style.animationPlayState = 'paused';
// Here comes the made up part...
style.animation.moveTo('50%'); // Or alternately...
style.animationPlayPosition = '50%';
有谁知道如何实现这一点(希望在 Webkit 中)?
我们可以使用
animation-delay
属性。通常它会延迟动画一段时间,并且,如果您设置 animation-delay: 2s;
,动画将在您将动画应用于元素后两秒开始。但是,您也可以使用它来强制它通过使用负值开始播放具有特定时移的动画:
.element-animation{
animation: animationFrames ease 4s;
animation-delay: -2s;
}
http://default-value.com/blog/2012/10/start-css3-animation-from-specified-time-frame/
duration
值的一半(因为您要将进度设置为 50%)let anim = fade_in_out.getAnimations()[0];
let duration = anim.effect.getTiming().duration;
anim.currentTime = duration / 2;