Bonjour tout le monde,
Un message qui s'adresse aux passionnés de l'animation web . Je tente de résoudre un problème que certains d'entre nous ont peut être déjà rencontré sur des animations css poussées.
Je ne parle pas d'un simple élément 1 qui va d'un point A à un point B mais plutôt un élément 1 qui va d'un point A à un point B et suit une animation d'un élément 2 d'un point A à un point B. Ok on comprend rien à mon truc alors voici un schéma d'un exemple basique .
Dans cet exemple l'animation est en boucle. L'élément 1 met 2sec à rejoindre le point B puis 2sec après le déclenchement de l'animation, l'élément2 met à son tour 2sec pour rejoindre le point B (afin d'être syncho. avec l'animation de l'élément1).
Et là on arrive au problème suivant: l'élément 1 n'a pas de délai pour se déclencher, cela veut dire qu'une fois son animation terminée, il se relancera tout seul quand il aura rejoint le point B sans prendre en compte la fin de l'animation de l'élément 2 et du coup vous l'aurez compris cela décale tout dans le temps, au fur et mesure que les animations s'enchainent.
Vous pourriez me dire "tu n' as qu'à mettre un animation-delay: de 4-5sec sur l'élément 1 pour attendre la fin d'animation de l'élément 2. Oui dans ce cas effectivement cela fonctionnerait sauf que, quand il y' a une dizaine d'éléments qui doivent se déclencher les uns après les autres ça devient ingérable (surtout si faut revoir les temps) et c'est là ou je vois la limite des animations css...
À moins qu'il y'ait une astuce sans JS ? J'ai regardé du coté de SMIL, l'autre façon d'animer avec du SVG, il y' a cette propriété qui a attirer mon attention
Ce bout de code est issu d'un slide de Sara Soueidan > http://slides.com/sarasoueidan/animating-svg-with-css-and-smil-full-version#/49. La fonction restart pourrait je pense être intéressante dans mon cas sauf que SMIL n'est pas supporté par IE :'(
Finalement pour résumer l'objectif serait que mon animation fonctionne à la manière d'un gif en boucle. Une fois que tous les éléments ont finit leur animation, on repart de zéro à l'état initial pour chaque éléments.
Peut être que la fonction calc() pourrait être utile sur animation-delay:
Avez-vous des avis, des retours d'expérience sur ce cas ? Merci à tous.
Modifié par Jordane L. (09 Apr 2015 - 13:24)
Un message qui s'adresse aux passionnés de l'animation web . Je tente de résoudre un problème que certains d'entre nous ont peut être déjà rencontré sur des animations css poussées.
Je ne parle pas d'un simple élément 1 qui va d'un point A à un point B mais plutôt un élément 1 qui va d'un point A à un point B et suit une animation d'un élément 2 d'un point A à un point B. Ok on comprend rien à mon truc alors voici un schéma d'un exemple basique .
Dans cet exemple l'animation est en boucle. L'élément 1 met 2sec à rejoindre le point B puis 2sec après le déclenchement de l'animation, l'élément2 met à son tour 2sec pour rejoindre le point B (afin d'être syncho. avec l'animation de l'élément1).
Et là on arrive au problème suivant: l'élément 1 n'a pas de délai pour se déclencher, cela veut dire qu'une fois son animation terminée, il se relancera tout seul quand il aura rejoint le point B sans prendre en compte la fin de l'animation de l'élément 2 et du coup vous l'aurez compris cela décale tout dans le temps, au fur et mesure que les animations s'enchainent.
Vous pourriez me dire "tu n' as qu'à mettre un animation-delay: de 4-5sec sur l'élément 1 pour attendre la fin d'animation de l'élément 2. Oui dans ce cas effectivement cela fonctionnerait sauf que, quand il y' a une dizaine d'éléments qui doivent se déclencher les uns après les autres ça devient ingérable (surtout si faut revoir les temps) et c'est là ou je vois la limite des animations css...
À moins qu'il y'ait une astuce sans JS ? J'ai regardé du coté de SMIL, l'autre façon d'animer avec du SVG, il y' a cette propriété qui a attirer mon attention
<animate id="move"
link:href="#myCircle"
attributeName="cx"
attributeType="XML"
from="50"
to="450"
dur="1s"
fill="freeze"
begin="click"
[b]restart="whenNotActive"[/b]
/>
Ce bout de code est issu d'un slide de Sara Soueidan > http://slides.com/sarasoueidan/animating-svg-with-css-and-smil-full-version#/49. La fonction restart pourrait je pense être intéressante dans mon cas sauf que SMIL n'est pas supporté par IE :'(
Finalement pour résumer l'objectif serait que mon animation fonctionne à la manière d'un gif en boucle. Une fois que tous les éléments ont finit leur animation, on repart de zéro à l'état initial pour chaque éléments.
Peut être que la fonction calc() pourrait être utile sur animation-delay:
Avez-vous des avis, des retours d'expérience sur ce cas ? Merci à tous.
Modifié par Jordane L. (09 Apr 2015 - 13:24)