如何无限向前运行CSS动画

Posted

技术标签:

【中文标题】如何无限向前运行CSS动画【英文标题】:How to run a CSS animation infintely forwards 【发布时间】:2015-02-07 08:28:26 【问题描述】:

所以我正在寻找创建一个非常基本的雪效果。

我有一个关键帧动画,用于片状左右摇摆并沿 Y 轴移动。我希望元素使用转发保留结束值。但我还想循环动画(无限),以便它从中断的地方继续。

html

<div>
  <figure class="small"></figure>
</div>

CSS:

div 
  width: 100%;
  height: 250px;
  background: #184254;


figure 
  border-radius: 50%;


@-webkit-keyframes snowfall 
  25% 
    transform: translateX(10px) translateY(20px);
      
  75% 
    transform: translateX(-10px) translateY(30px);
  
  100% 
    transform: translateX(0px) translateY(40px);
  


.small 
  margin-left: 100px;
  width: 7px;
  height: 7px;
  background: #DFE9ED;
  -webkit-animation: snowfall 2s ease-in-out forwards infinite;

http://codepen.io/mildrenben/pen/PwZdXB

【问题讨论】:

@Danko 我猜他想重复figure 的相同路径,但从终点开始(这意味着下面和下面和下面)。只是不要将整个路径编码到页面底部 @Anarion mm 是的,你是对的 【参考方案1】:

你可以使用两种动画,一种是左右移动,另一种是让它下落。

从上到下的动画将使用绝对定位,因此它将取决于身体高度(或其第一个父级的absoluterelative 定位)。

figure 
  border-radius: 50%;
  position: absolute;


@-webkit-keyframes snowside 
 25% 
    transform: translateX(10px);
      
  75% 
    transform: translateX(-10px);
  
  100% 
    transform: translateX(0px);
  

@-webkit-keyframes snowfall 
  0% 
    top: 0;
  
  100% 
    top: 100%;
  


.small 
  margin-left: 100px;
  width: 7px;
  height: 7px;
  background: #DFE9ED;
  -webkit-animation: snowside 2s ease-in-out forwards infinite, snowfall 15s ease-in-out forwards infinite;

http://codepen.io/anon/pen/YPwOMY

【讨论】:

好伙伴,加 1,请用 up / down 的解释来补充你的答案。根据容器的高度工作。 为所有浏览器支持添加 transformanimation 的供应商前缀。

以上是关于如何无限向前运行CSS动画的主要内容,如果未能解决你的问题,请参考以下文章

Css动画无限动画线

css3 实现动画效果,怎样使他无限循环动下去?

如何使用 CSS3 无限地为我的图像设置动画

使用 CSS 和 Javascript 的无限旋转动画 [关闭]

点击播放 css3 动画

如何停止css animation动画