CSS动画延迟和播放状态行为

前端之家收集整理的这篇文章主要介绍了CSS动画延迟和播放状态行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图捕捉元素动画中的特定时刻。意思 – 我希望动画在X点开始和停止(让我们说在100秒动画的第5个开始和停止)。

这是我的拍摄
JSFiddle

@-webkit-keyframes background {
  from { background: yellow; }
  100% {
    background: blue;
  }
}

div {
  -webkit-animation-name: background;
  -webkit-animation-duration: 100s;
  -webkit-animation-fill-mode: forwards;
  -webkit-animation-delay: -40s;
  -webkit-animation-play-state: paused;
}

这似乎在Chrome和Firefox中运行良好,但似乎在Safari和IE中无效(没有办法,对吧?)
注意:我特意留下了前缀,以便在Safari上进行测试。

与Chrome不同,似乎动画从未在Safari中启动,并保持在初始步骤。

这是一个已知的问题?是否有解决方法或其他方法来实现?

UPDATE /澄清

我需要的是能够捕获动画的特定FRAME。在Chrome中打开我的小提琴,并在我的小提琴中播放动画延迟属性(确保它保持不变)。你会看到,你可以抓住一个特定的动画框架。完全是我需要的我的问题是,这不工作在Safari。

解决方法

如何创建5秒的关键帧动画,并确保框架相同的“百分之百”。

由于时间的动画比例是百分比,我们可以计算出100ms / 5000ms等于2%/ 100%。

div {
    background:#333;
    padding:10px;
    width:100px;
    height:100px;
    color:#fff;
    animation-name: animateAndPause;
    animation-duration: 5s;
    animation-iteration-count: infinite;
}
@keyframes animateAndPause {
    0% { 
     -ms-transform: rotate(0deg); /* IE 9 */
     -webkit-transform: rotate(0deg); /* Chrome,Safari,Opera */
     transform: rotate(0deg);
    }
    98% {      
     -ms-transform: rotate(360deg); /* IE 9 */
     -webkit-transform: rotate(360deg); /* Chrome,Opera */
     transform: rotate(360deg); 
    }   
   100% { 
     -ms-transform: rotate(360deg); /* IE 9 */
     -webkit-transform: rotate(360deg); /* Chrome,Opera */
     transform: rotate(360deg);    
    }
}

为了演示的目的,jsfiddle有一个更长的暂停,500ms。

https://jsfiddle.net/bfu9wvxt/5/

猜你在找的CSS相关文章