问题
我有两个CSS关键帧动画,我运行在一个单一的元素:
.fade-bg {
animation-name: fade-bg-1, fade-bg-2;
animation-delay: 0, 6s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
动画定义如下:
@keyframes fade-bg-1 {
from {
opacity: 0;
background-image: url(image-1.jpg);
}
50% {
opacity: 1;
background-image: url(image-1.jpg);
}
to {
opacity: 0;
background-image: url(image-1.jpg);
}
}
@keyframes fade-bg-2 { /* Same as fade-bg-1 only with image-2.jpg */ }
上面的方法可以工作,但是当它到达第二个动画时,它只重复该动画,而不循环回fade-bg-1
。
我尝试了许多不同的animation-direction
组合,但都没有用。
问题
如何使动画返回到fade-bg-1
并重复?
3条答案
按热度按时间tvz2xvvm1#
如果没有javascript,我想你是做不到的,但是你可以用一个关键帧动画来达到同样的效果。
EXAMPLE
vatpfxk52#
我不确定仅使用css是否可行,但如果您在JS中巧妙地设置了setInterval方法,您可能会通过将类拆分为两个来模拟相同的事情。
.fade-bg-1和.fade-bg-2是两个动画类。
这里有一个jsfiddle,如果你想玩它。
llew8vvj3#
我在6年前问过这个问题,现在已经发生了很大的变化,但没有真实的的纯css解决方案。
我能想到的最接近的方法是使用伪元素来应用第二个动画。
可能的解决方案:
使用类似
::after
的伪元素并将第二个动画应用于它。代码: