formateur informatique

Effet d'animation entrant sur un texte en CSS

Accueil  >  Technique  >  CSS  >  CSS Astuces  >  Effet d'animation entrant sur un texte en CSS
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Effet d'animation entrant

Dans ce premier volet sur les astuces et effets CSS, nous allons apprendre très simplement à créer une animation sur un texte d'accueil. Et comme vous le verrez, aucun code Javascript ne sera nécessaire.

Effet d-animation texte entrant sur page Internet avec les styles CSS et Keyframes

Introduction
Les CSS sont des feuilles de style en cascade : Cascading Style Sheets. On les exploite pour définir les attributs des éléments Html qui composent les pages d'un site Web. Conventionnellement, on les lie et on les déclare dans l'entête de la page, la section head. Ils sont ainsi externalisés pour être exploités par toutes les pages du site. C'est une excellente manière de normaliser les réglages de mise en forme et de mise en page. Mais c'est aussi une excellente façon d'optimiser les travaux de retouche. La moindre modification sur l'un des styles est ainsi automatiquement répercutée sur toutes les pages qui l'utilisent.

La vocation de cette série d'astuces n'est pas d'apprendre le CSS en partant du B.A-BA. Avec les innombrables sources en libre-service sur le Web, il suffit de se servir pour s'inspirer et répliquer les réglages souhaités. Dans cette série, nous proposons de découvrir des astuces et des effets intéressants qu'il est possible d'appliquer pour agrémenter les pages d'un site.

Dans ce premier volet et très simplement, nous allons voir comment créer un effet d'animation entrant sur un texte.



Fichiers sources
Pour la construction de ce premier effet basique, nous proposons de récupérer des sources. Elles offrent une page Web structurée, mise en forme et mise en page par certains styles CSS. Mais bien entendu, ceux concernant l'animation sont à construire. Comme vous pouvez le voir, la décompression conduit à trois fichiers accompagnés de trois sous dossiers. Les trois fichiers sont nommés respectivement : index.htm, animation.txt et keyframes.txt. Index.htm est la page Html à partir de laquelle nous allons travailler, entre autres. Elle offre la structure, organisée par les styles. Et précisément ces styles sont déclarés et paramétrés dans le sous dossier css. Les deux autres sous dossiers n'offrent pas grand intérêt pour l'instant. Mais cette structuration est celle que nous retrouverons au fil de nos péripéties sur la découverte des effets et astuces avec les styles CSS. Les deux fichiers de texte (.txt) à la racine, fournissent quant à eux les fragments de code CSS permettant de donner vie à l'animation souhaitée. Vous l'avez compris, dans ce premier volet, il n'est pas question de coder mais simplement de restituer par copier-coller.



Découverte de la structure Html
Avant de débuter, il est important de comprendre comment les éléments Html sont articulés et comment ils sont organisés par les styles.
  • A la racine du dossier de décompression, double cliquer sur le fichier index.htm,
Il s'ouvre ainsi dans votre navigateur Web défini par défaut.

Page Html d-accueil sans animation de texte

Nous débouchons sur une page Web d'accueil avec une structure et une mise en forme qui valent ce qu'elles valent. Seule la technique nous intéresse ici. En haut du rectangle aux coins arrondis, le texte d'accueil est bien présent (Bonjour et bienvenue). Mais à ce stade, il semble très introverti. Côté mise en forme, il est en retrait par rapport à tous les autres éléments de la page. De plus, aucun effet d'animation ne lui est affecté. Il s'agit bien sûr de tout l'enjeu de cette première astuce.
  • A la racine du dossier de décompression, cliquer droit sur le fichier index.htm,
  • Dans le menu contextuel, choisir de l'ouvrir avec un éditeur comme le Notepad++,
Si vous ne le possédez pas, sachez que ce logiciel est gratuit. Il suffit de taper son nom dans un moteur de recherche comme Google pour l'obtenir facilement.

Tout d'abord, en entête du code Html, vous notez la présence des déclaratives aux feuilles de styles CSS :

<link rel='stylesheet' href='css/mes-styles.css'>
<link rel='stylesheet' href='css/les-styles.css'>


La feuille CSS mes-styles.css définit tous les attributs de mise en forme pour les éléments Html de la page Web. Comme nous l'avons évoqué, nous ne nous attarderons pas à son sujet. La feuille les-styles.css est celle qui nous intéresse. C'est elle qui doit accueillir les paramétrages donnant vie à l'effet d'animation sur le texte de bienvenue.

La suite du code située dans le Body est la construction de la page. La partie qui nous intéresse est située dans le Div d'identifiant conteneur (<div id='conteneur'>). Un Div Html est un calque. Il délimite une zone dans laquelle des informations sont contenues. Sa borne inférieure est sanctionnée par son élément fermant : </div>. A l'intérieur de ce calque, un autre calque est imbriqué. Il encapsule le titre à animer : <divclass='message'>Bonjour et bienvenue</div> .

Vous notez la présence de son attribut class. Il est primordial. Il fait référence au style message. C'est lui que nous devons paramétrer dans la feuille de styles les-styles.css pour générer l'effet d'animation.



Animation CSS
Comme nous l'évoquions précédemment, dans ce premier volet et pour une progression linéaire, nous allons nous contenter de restituer des styles déjà construits. Mais, nous allons prendre soin d'expliciter le code et d'en constater les effets.
  • A la racine du dossier de décompression, double cliquer sur le dossier css pour l'ouvrir,
  • Dès lors, cliquer droit sur le fichier les-styles.css,
  • Dans le menu contextuel, choisir de l'ouvrir avec un éditeur comme le Notepad++,
Un style Css existe déjà. Il est préfixé du symbole du dièse (#) car il est fait référence à un élément unique dans la page Web reconnu par son attribut id. Il s'agit du div d'identifiant desc encapsulant le texte d'introduction situé sous le texte du titre d'accueil à animer. En revanche, lorsque plusieurs éléments Html héritent d'un même style, celui-ci doit être préfixé du symbole du point (.) à la place du symbole du dièse. Dès lors, dans la balise Html de chacun de ces éléments, c'est l'attribut class qui permet d'y faire référence à la place de l'attribut id.
  • A la racine du dossier de décompression, double cliquer sur le fichier keyframes.txt,
Ainsi nous l'ouvrons dans le bloc notes.
  • Réaliser le raccourci clavier CTRL + A pour sélectionner tout le code,
  • Le copier par le raccourci clavier CTRL + C,
  • Revenir dans l'éditeur Notepad++ sur le fichier les-styles.css,
  • Cliquer après l'accolade fermante du style Css desc,
  • Enfoncer la touche Entrée du clavier pour repousser le pont d'insertion en-dessous,
  • Coller le code précédemment prélevé par le raccourci clavier CTRL + V,
  • Puis, enregistrer les modifications (CTRL + S),
@keyframes mon_anim{
0%{
transform: translateY(10vh);
opacity: 0;
},
100%{
transform: translateY(0px);
opacity: 1;
}}


Un keyframes est une règle CSS. Dans une feuille de styles, il est nécessairement préfixé du symbole de l'arobase et suivi du nom de la règle, en l'occurrence ici du nom de l'animation : mon_anim. Cette animation n'existe pas encore, chaque chose en son temps. Le Keyframes permet de définir les étapes qui composent la séquence d'une animation CSS. Et comme vous pouvez le voir, chaque séquence est délimitée par des accolades.

Le point de départ commence à 0%. L'attribut transform paramètre le type d'animation à initier. Avec la fonction translateY, nous initialisons une animation verticale. Le point de départ est défini à 10vh. Vh est une unité de mesure relative aux dimensions de la page. Sans entrer dans les détails, le texte concerné doit débuter son animation en dessous de sa position d'origine. L'attribut opacity est réglé à 0. En d'autres termes, le texte concerné est transparent au début de l'animation.

Cette animation est complétée à 100%. Et naturellement, il s'agit de définir l'état d'arrivée des deux attributs paramétrés au début de l'effet. Dans l'attribut transform, nous passons cette fois la valeur 0px à la fonction translateY. De cette façon, l'élément Html concerné doit retrouver sa position d'origine telle qu'elle est définie dans la structure Html de la plage Web. Puis, nous réglons l'attribut opacity à 1, soit 100%. L'élément Html, complètement transparent au début de l'animation, doit recouvrer son opacité totale à l'issue de l'effet, en même temps que sa position d'origine.

Mais pour qu'elle soit totalement fonctionnelle, cette animation requiert encore certains paramètres comme sa durée, son délai ou encore son effet de progression. Et ces paramètres se définissent dans le style associé à l'élément Html concerné. D'ailleurs et à ce stade, si vous rafraîchissez la page Web dans la navigateur (F5), aucun changement n'est à observer. Souvenez-vous, dans la page Html, le calque du texte d'accueil est associé au style message : class='message'. C'est lui qui va permettre d'associer la règle (Keyframes) à l'animation de l'élément.
  • A la racine du dossier de décompression, double cliquer sur le fichier animation.txt,
  • Prélever l'intégralité du style par le raccourci clavier CTRL + A,
  • Le copier par le raccourci clavier CTRL + C,
  • Revenir sur le fichier les-styles.css dans l'éditeur Notepad++,
  • Cliquer après la dernière accolade fermante du keyframes,
  • Enfoncer la touche Entrée du clavier pour passer sur la ligne du dessous,
  • Puis, coller le style (CTRL + V) précédemment prélevé,
.message
{

animation-name: mon_anim;
animation-duration: 3000ms;
animation-delay: 500ms;
animation-timing-function: ease-in-out;

animation-iteration-count: 1

}


Nous déclarons donc le style message. Et comme nous l'avons expliqué, il est bien précédé du symbole du point (.). Il est en effet appelé par l'attribut class dans la balise div du texte d'accueil, depuis la page Html. D'autres éléments Html peuvent donc l'utiliser pour subir le même effet d'animation. Et à ce titre, le premier attribut indique le nom de l'animation à jouer : animation-name:mon_anim. Le lien est désormais établi avec le keyframes. Mais à ce stade, même si nous connaissons l'état de départ et l'état de fin, il nous reste à définir les étapes de l'animation. C'est la raison de la présence des attributs qui suivent. Nous définissons la durée sur 3000 millisecondes : animation-duration:3000ms, soit une animation qui se joue sur 3 secondes. Nous définissons le délai sur 500 millisecondes : animation-delay: 500ms. De cette manière, au premier chargement de la page, l'animation du texte attend une demi-seconde avant de se déclencher. Nous définissons le style sur ease-in-out : animation-timing-function:ease-in-out. Nous aurons l'occasion de découvrir les différentes valeurs qu'il est possible de passer à l'attribut animation-timing-function. Avec celle-ci, l'animation n'est pas linéaire. Elle débute lentement, progresse régulièrement et ralentit pour rejoindre le point final (Position et opacité). Enfin, l'attribut animation-iteration-count réglé à 1 indique que l'animation ne doit être jouée qu'une fois. Vous pourrez modifier ce paramètre pour constater l'incidence.
  • Enregistrer les modifications (CTRL + S),
  • Basculer sur le navigateur Web dans lequel la page Html est ouverte,
  • Rafraîchir cette dernière à l'aide de la touche F5 du clavier,
Comme vous pouvez le voir, l'animation se joue en respectant les attributs que nous avons définis et expliqués. Le texte d'accueil part d'une position basse et devient de moins en moins transparent jusqu'à rejoindre sa position verticale d'origine.



Animer un texte avec les styles CSS sur la position verticale et la transparence grâce à un keyframes

Tout cela est bien déroulé sur trois secondes en respectant un délai de déclenchement d'une demi-seconde. Cependant, le texte en question manque de charisme. Ses attributs sont tellement neutres qu'il passerait presque inaperçu par rapport aux autres éléments de la page. Nous devons le mettre en valeur. C'est bien la vocation des styles Css. Nous devons donc enrichir le style message qui ne se contentera plus de définir uniquement les réglages de l'animation.
  • Revenir sur le fichier les-styles.css dans l'éditeur Notepad++,
  • Au début du style message, ajouter les trois attributs suivants (Ceux en gras) :
.message
{

font-size:26px;
margin-top:20px;
color:#2b579a;

animation-name: mon_anim;
animation-duration: 3000ms;
animation-delay: 500ms;
animation-timing-function: ease-in-out;

animation-iteration-count: 1

}


Nous ajoutons donc un réglage sur la taille de la police à 26 pixels (font-size:26px), sur la marge supérieure de 20 pixels à respecter (margin-top:20px) et sur la couleur du texte codée en hexadécimale (color:#2b579a). Il s'agit d'un bleu assez foncé.
  • Enregistrer les modifications (CTRL + S),
  • Revenir sur le navigateur Web et rafraîchir la page Html (F5),
Cette fois et du fait de ces attributs de mise en forme additionnés, l'animation est plus franche.

Mise en forme d-un texte animé par les styles Css

Si vous modifiez la valeur de l'attribut animation-duration, l'animation se joue plus ou moins vite. Si vous réglez la valeur de l'attribut animation-iteration-count à 2 et que vous rafraîchissez la page Html, vous constatez que l'animation se joue deux fois en effet.

Voilà donc pour cette légère introduction sur les astuces et effets CSS. Nous avons tant à découvrir et les volets qui suivent regorgent de surprises.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn