如何重复精灵动画中的最后两帧

问题描述:

我想弄清楚一旦整个动画完成后循环最后2帧的最佳方式是什么。如何重复精灵动画中的最后两帧

例如我有8个步骤的精灵动画。它应该从1到6一次,然后我想从7-8步骤到永远循环。

现在我很确定它不能这样做,所以我想也许只是动画从1到6,然后让jQuery替换类(有另一个精灵)在准确的时间,当第一个精灵是完整的,你怎么看?

+0

你绝对可以把它重复最后两帧。请参阅本指南以获取关于spritesheets的良好教程:http://blog.teamtreehouse.com/css-sprite-sheet-animations-steps您需要为两帧部分制作单独的动画。您应该在双帧动画上设置动画延迟,以延迟它,直到上一个动画完成,并为关键帧和背景位置设置不同的位置。 –

+0

感谢您的回复,我没有线索可以这样做,这让事情变得更容易。 – DearBee

你可以通过链接多个CSS关键帧动画来做到这一点。下面是一个例子,其中10步动画播放一次超过.8s,然后包含最后2帧图像的第二个关键帧动画(loop)无限重复(初始起始延迟为.8s)。

.hi { 
 
    width: 50px; 
 
    height: 72px; 
 
    background-image: url("http://s.cdpn.io/79/sprite-steps.png"); 
 
    animation: play .8s steps(10) 1, 
 
      loop .2s steps(2) .8s infinite; 
 
} 
 

 
@keyframes play { 
 
    from { 
 
    background-position: 0px; 
 
    } 
 
    to { 
 
    background-position: -500px; 
 
    } 
 
} 
 

 
@keyframes loop { 
 
    from { 
 
    background-position: -400px; 
 
    } 
 
    to { 
 
    background-position: -500px; 
 
    } 
 
}
<div class="hi"></div>

+1

哈哈,谢谢你的回复和例子,我很惊讶这样做可以这样做! – DearBee