【问题标题】:CSS how to start one keyframes animation after other one finished? [duplicate]CSS如何在另一个完成后启动一个关键帧动画? [复制]
【发布时间】:2019-02-09 05:49:23
【问题描述】:

如何在另一个完成后启动一个关键帧动画?

#myDiv {
  position: relative;
  width: 100px;
  height: 100px;
  border: 1px solid;
  animation-name: animation1;
  animation-duration: 2s;
  animation-fill-mode: forwards;
}

@keyframes animation1 {
  0% {left: 100px}
  100% {left: 200px}
}

@keyframes animation2 {
  0% {top: 100px}
  100% {top: 200px}
}
<div id="myDiv"></div>

我想在animation1完成后开始animation2。我不想像 0%,50%,100% 这样划分一个动画或使用其他动画的动画持续时间。我想获取动画完成信息并使用它。我不想使用延迟。有可能吗?

【问题讨论】:

  • 延迟添加另一个。
  • 我不想用这个那个,那怎么做动画呢?它可以是 1 个动画的 % 和持续时间计算,也可以是 2 个动画的简单延迟。
  • 谢谢@Kaiido。看来我可以使用animationend功能。

标签: javascript html css angular css-animations


【解决方案1】:

您可以使用animation-delay。如果 animation1 需要 3 秒才能完成,您将声明 animation2 如下

@keyframes animation2{
animation-delay : 3s;
0% {
    top: 100px;
}

100% {
    top: 200px;
}
}

【讨论】:

  • 谢谢,但我不想使用延迟,因为动画持续时间会根据数据库中的数据而变化,并且有 5-6 个动画基于彼此。
  • 动画延迟不是关键帧的属性。如果你在 myDiv 中添加动画延迟,它会延迟两者。
猜你喜欢
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多