循环中CSS动画的延迟

12

尝试使用CSS使带有class为price的标签向上滑动,然后再向下滑动。

我有以下代码--

-webkit-animation-name: slidingPrice;
-webkit-animation-duration: 300ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-delay: 4s;

@-webkit-keyframes slidingPrice {
  0% { opacity: 0; bottom: -30px; }
  50% { opacity: 1; bottom: 0; }
  100% { opacity: 0; bottom: -30px; }
}

我发现动画会在4秒后开始播放,但一旦开始,它只会以快速循环的方式持续播放。我该如何在每个循环之间添加4秒延迟,并在50%处停止2秒钟?


1
这个回答解决了你的问题吗?CSS动画重复中的延迟 - T J
1个回答

19

让你的循环时间更长,添加更多的关键帧。

@-webkit-keyframes slidingPrice {
  0%     { opacity: 0; bottom: -30px; } /* 0ms initial values */
  2.38%  { opacity: 1; bottom: 0; }     /* 150ms half of animation */
  34.13% { opacity: 1; bottom: 0; }     /* 2150ms still at half of animation */
  36.51% { opacity: 0; bottom: -30px; } /* 2300ms back to initial */
  100%   { opacity: 0; bottom: -30px; } /* 6300ms still at initial */
}

.price {
    -webkit-animation-name: slidingPrice;
    -webkit-animation-duration: 6300ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: ease-in-out;
    -webkit-animation-delay: 4s;
}

2
只要需要反向动画,则可以使用以下代码:-webkit-animation-direction: alternate, reverse, normal; - Syed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接