J'ai récemment découvert comment utiliser "correctement" les animations CSS (auparavant, je les rejetais car elles ne permettaient pas de réaliser des séquences complexes comme en JavaScript). Je suis donc en train d'apprendre à les connaître.
Pour cet effet, j'essaie de faire en sorte qu'un gradient "flare" balaye un élément de type barre de progression. Cet effet est similaire à celui des barres de progression natives de Windows Vista/7.
@keyframes barshine {
from {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
to {background-image:linear-gradient(120deg,rgba(255,255,255,0) 100%,rgba(255,255,255,0.25) 105%,rgba(255,255,255,0) 110%);}
}
.progbar {
animation: barshine 1s 4s linear infinite;
}
Comme vous pouvez le voir, j'essaie d'avoir un délai de 4 secondes, suivi par le balayage de la brillance en 1 seconde, répété.
Cependant, il semble que le animation-delay
ne s'applique qu'à la première itération, après quoi l'éclat continue à se propager de manière répétée.
J'ai "résolu" ce problème comme suit :
@keyframes expbarshine {
from {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
80% {background-image:linear-gradient(120deg,rgba(255,255,255,0) -10%,rgba(255,255,255,0.25) -5%,rgba(255,255,255,0) 0%);}
to {background-image:linear-gradient(120deg,rgba(255,255,255,0) 100%,rgba(255,255,255,0.25) 105%,rgba(255,255,255,0) 110%);}
}
.progbar {
animation: barshine 5s linear infinite;
}
from
y 80%
sont exactement les mêmes, ce qui entraîne un "retard" de 80% de la durée de l'animation.
Cela fonctionne, mais pour ma prochaine animation, j'ai besoin que le délai soit variable (constant pour un élément particulier, mais variable parmi les éléments qui utilisent l'animation), alors que l'animation elle-même reste exactement de la même longueur.
Avec la "solution" ci-dessus, je me retrouverais avec une animation plus lente alors que tout ce que je veux, c'est un délai plus long.
Est-il possible d'avoir le animation-delay
s'applique à toutes les itérations, et pas seulement à la première ?