我使用的图像会浮动,然后逐渐消失。 (有些情况相反,淡入。)它在循环中第一次起作用,但是在第二次进入循环时,淡入淡出了。



.candycane {
  width: 128px;
  height: 128px;
  position: absolute;
  background: transparent url(https://i.stack.imgur.com/qM90U.png) 0 0 no-repeat;
}

.candycane_drift {
  top: 55px;
  z-index: 100;
  animation: drift 15s linear infinite, 3s fadeOut 12s ease-in;
}

@keyframes drift {
  from {
    transform: translateX(-175px);
  }
  to {
    transform: translateX(400px);
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

<div class="candycane candycane_drift"></div>

最佳答案

您可以考虑组合动画并设置关键帧百分比,如下所示:



.candycane {
  width: 128px;
  height: 128px;
  position: absolute;
  background: transparent url(https://i.stack.imgur.com/qM90U.png) 0 0 no-repeat;
}

.candycane_drift {
  top: 55px;
  z-index: 100;
  animation: drift 15s linear infinite;
}

@keyframes drift {
  0% {
    transform: translateX(-128px);
    opacity: 1;
  }
  66% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateX(400px);
  }
}

   

<div class="candycane candycane_drift"></div>





这具有将两个动画都绑定到一个缓动设置的缺点,但是在某些情况下可能更易于理解和很好的解决方案。

10-08 17:31