Zombi¶

L'objectif de cet exercice est de créer une première animation avec GSAP : faire battre le coeur d'un zombi et faire varier la couleur de fond de la page.
Notions mises en pratique :
gsap.to()etgsap.fromTo()- Les propriétés
scaleetbackgroundColor - Les paramètres
duration,repeat,yoyoetease
Résultat attendu¶
Consignes¶
Préparation¶
- Accepter le devoir Classroom 50
- Cloner le répertoire avec GitHub Desktop
- Ouvrir le dossier cloné dans VSCode
- Dans le terminal, installer les dépendances, puis lancer le projet :
npm installnpx vite - Confirmer que le coeur s'affiche au centre de la page
Pas besoin d'installer GSAP ?
Non, pas là là. Tout va s'installer tout seul via le package.json de départ.
Disons que c'est un cadeau pédagogique 😜
Exploration du projet¶
Avant d'écrire du code, prendre une minute pour comprendre comment le projet est branché.
- Ouvrir
index.htmlet repérer l'image du coeurNoter sa classe css. C'est elle qui servira de cible à l'animation.
- Ouvrir
src/main.jsIl importe la fonction custom
gsapAnimations()du fichiergsap.js, puis l'appelle. - Ouvrir
src/gsap.jsC'est ici, et seulement ici, que tout le code de l'exercice sera écrit, à l'intérieur de la fonction
gsapAnimations().
Animation A - Le coeur
¶
Un premier tween¶
-
À l'aide de
gsap.to(), animer le coeur- Agrandissement à
1.2fois sa taille (scale) - Durée de
0.6seconde
Observation
Le coeur grossit une seule fois, puis plus rien. Un tween joue une seule fois par défaut.
- Agrandissement à
Répétition¶
-
Ajouter le paramètre
repeatpour que l'animation se répète à l'infiniObservation
Ça se répète, mais le coeur revient à sa taille d'origine d'un coup sec, sans transition.
L'aller-retour¶
- Ajouter le paramètre
yoyopour que le coeur revienne en douceur à sa taille d'origine
Le lissage¶
-
Ouvrir le visualiseur de lissages de GSAP et essayer des lissages différents pour arriver au résultat attendu. Ne regardez pas tout de suite la réponse 😜
Réponse
Le lissage utilisé est
elastic.out(1, 0.3)
- Commit + push
Animation B - Le fond¶
-
Dans la même fonction, sous l'animation du coeur, animer 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
Indice
fromTo()fromTo()reçoit deux objets :gsap.fromTo("cible", { /* valeurs de départ */ }, { /* valeurs d'arrivée + paramètres */ } )Les paramètres comme
durationourepeatvont toujours dans le deuxième objet. - Couleur de départ :
- Commit + push
Défi du zombi
¶
- Ajouter une légère rotation au coeur pendant qu'il bat (quelques degrés seulement)
- Commit + push