Exercice : Zombi¶
Utilisation de l'IA interdite pour cette activité. Faites chauffer vos méninges!
L'essentiel en 3 points
- Votre premier tween GSAP (une interpolation) : faire battre le coeur d'un zombi, et faire varier la couleur de fond de la page.
- Notions :
gsap.to(),gsap.fromTo(), les propriétésscaleetbackgroundColor, les paramètresduration,repeat,yoyoetease. - Seul, environ 15 minutes. Gardez la page GSAP : tweens et timelines ouverte à côté.
Obtenir votre dépôt (5 min)¶
Accepter l'exercice dans Classroom 50
- Ouvrez le lien ci-dessus, connectez-vous avec Sign in with GitHub, puis acceptez l'exercice.
- Clonez votre dépôt et ouvrez-le dans VS Code.
- Ouvrez
index.htmlavec Live Server.
Pas de npm install : GSAP est chargé par CDN, avec une balise <script> dans index.html, avant js/script.js. Comme dans votre récit.
Tout votre code va dans js/script.js. Ouvrez aussi index.html et repérez l'image du coeur : notez sa classe CSS, c'est la cible de l'animation.
Aperçu du résultat¶
Animation A : le coeur (5 min)¶
Un premier tween (interpolation)¶
- Avec
gsap.to(), animez le coeur : agrandissement à1.2fois sa taille (scale), en0.6seconde.
Ce que vous devriez voir
Le coeur grossit une seule fois, puis plus rien : un tween joue une seule fois par défaut.
La répétition¶
- Ajoutez le paramètre
repeatpour que l'animation se répète à l'infini.
Ce que vous devriez voir
Ça se répète, mais le coeur revient à sa taille d'origine d'un coup sec.
L'aller-retour¶
- Ajoutez le paramètre
yoyo: le coeur revient en douceur à sa taille d'origine.
Le lissage¶
- Ouvrez le visualiseur d'eases de GSAP et essayez des lissages pour arriver au résultat de la vidéo. Ne regardez pas la réponse tout de suite!
Réponse
ease: "elastic.out(1, 0.3)"
- Commit (
Animation A : le coeur bat), puis push.
Animation B : le fond (5 min)¶
- Sous l'animation du coeur, animez la couleur de fond du
bodyavecgsap.fromTo():- couleur de départ :
#838B2F; - couleur d'arrivée :
#BDAF88; - durée de
2.4secondes; - répétition à l'infini, en aller-retour.
- couleur de départ :
Indice : fromTo()
fromTo() reçoit deux objets : le départ, puis l'arrivée. Les paramètres (duration, repeat...) vont toujours dans le deuxième.
gsap.fromTo("cible",
{ /* valeurs de départ */ },
{ /* valeurs d'arrivée + paramètres */ }
);
- Commit (
Animation B : le fond change de couleur), puis push.
Défi du zombi (facultatif)¶
- Ajoutez une légère rotation au coeur pendant qu'il bat : quelques degrés seulement.
- Commit (
Défi : le coeur tourne), puis push.
Pour remettre : un push sur main
Votre exercice est remis seulement quand vos commits sont poussés (push) sur la branche main de votre dépôt Classroom 50. Un commit qui reste sur votre poste, je ne le vois pas.
Je vois votre dépôt et vos commits dans Classroom 50.
Exercice adapté, avec sa permission, de l'exercice du même nom du cours Web 3 (582-311), TIM Montmorency.