formateur informatique

Effet de fondu entre deux images avec les styles CSS

Accueil  >  Technique  >  CSS  >  CSS Astuces  >  Effet de fondu entre deux images avec les styles 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 de fondu entre images

Les effets Css de transition n'ont pas fini de nous surprendre. Dans une construction particulière où des photos sont empilées, ils permettent de réaliser un effet de fondu animé dévoilant progressivement l'image se cachant derrière la première.

Réaliser des effets de fondu animés entre images avec les styles Css

Le résultat illustré par la capture le démontre. Au survol d'une photo avec la souris, l'image en arrière-plan apparaît progressivement pour remplacer la première.



Structure Html et Css
Pour la démonstration de cette astuce, nous suggérons de débuter à partir de sources grâce auxquelles les éléments sont déjà organisés. Le fichier de la page Web se nomme index.html. Ses ressources l'accompagnent dans les sous dossiers. On note la présence des photos dans le sous dossier img et des feuilles de styles dans le sous dossier css.
  • Double cliquer sur le fichier index.html pour l'ouvrir dans le navigateur par défaut,
Deux photos sont disposées côte à côte. Mais pour l'instant bien sûr, au survol de la souris aucune transition en fondu n'est à observer. C'est l'enjeu de cette astuce.
  • A la racine du dossier de décompression, cliquer droit sur le fichier index.htm,
  • Dans le menu contextuel qui s'invite, choisir de l'ouvrir avec un éditeur comme le Notepad++,
En entête du code Html auquel nous accédons, vous notez les références aux feuilles de styles :

...
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />
<link rel='stylesheet' href='css/mes-styles.css'>
<link rel='stylesheet' href='css/les-styles.css'>

<body>
...


Elles sont toutes deux stockées dans le sous dossier local css. La première gère l'organisation globale ainsi que l'aspect des éléments Html de la page. La seconde est celle qui nous intéresse pour donner vie à ces effets de fondu. Elle se nomme les-styles.css.

Plus bas dans le code, vous notez la construction Html permettant la superposition des images. Cette imbrication est encapsulée dans le calque d'identifiant auCentre.

...
<div id='auCentre'>
<!--
Implémentation
-->
<div class='fondu'>
<img class='bas' src='img/photo1.jpg' />
<img class='haut' src='img/photo2.jpg' />
</div>
<div class='fondu'>
<img class='bas' src='img/photo3.jpg' />
<img class='haut' src='img/photo4.jpg' />
</div>

</div>
...


Les images sont intégrées dans deux calques gérés par la même classe nommée fondu. On compte deux images par calque, soit quatre au total. Pourtant, au chargement de la page Web, seules deux sont visibles. Celle du dessous affectée à la classe nommée haut cache celle du dessus affectée à la classe nommée bas. Vous l'avez compris, celle située en dessous dans la construction Html est affichée au-dessus sur la page Web. Mais cette petite prouesse est rendue possible par les styles Css que nous allons nous empresser de découvrir.
  • A la racine du dossier de décompression, double cliquer sur le sous dossier css pour l'ouvrir,
  • Dès lors, cliquer droit sur le fichier les-styles.css,
  • Dans le menu contextuel qui apparaît, choisir de l'ouvrir avec un éditeur comme le Notepad++,
Deux styles existent déjà. Le style fondu se charge des réglages des calques hébergeant les images. Ils sont donc déclarés en position relative et sont flottants (float:left). C'est ainsi que nous avons pu les disposer l'un à côté de l'autre. Les styles bas et haut concernent les images comme nous avons pu le constater. Elles sont déclarées en position absolue (position:absolute) à l'intérieur de ces calques. C'est grâce à ce réglage que les images se chevauchent et que celle du dessus masque celle du dessous. L'attribut left calé à zéro permet de bien tenir les images dans leur calque en partant du bord gauche.



Paramètres de transition
Puisque les présentations sont faites et que tous les éléments sont en place, il est temps désormais de définir les réglages de transition qui doivent permettre de jouer l'animation avec effet de fondu sur ces images.
  • A la suite du code Css, créer le style fondu img comme suit :
.fondu img
{

}


Nous désignons donc le nom de la classe des calques conteneurs (fondu) suivi de l'élément html img. Cette technique judicieuse indique que les réglages que nous allons opérer dans ce style ne concernent pas toutes les images de la page Html, mais seulement celles qui sont contenues dans les calques affectés au style fondu.
  • A l'intérieur du style fraîchement créé, ajouter l'instruction Css suivante :
.fondu img
{
transition: opacity 2s linear;
}


Nous initialisons l'effet avec l'attribut transition et nous lui passons trois paramètres. Le premier indique que la transformation doit avoir lieu sur l'opacité de l'image (opacity) concernée. Le deuxième fixe la durée de cette animation sur deux secondes. Le dernier exprime une transformation linéaire, soit à vitesse constante.



Animation par transparence
Désormais, pour que cette animation se joue au survol de la souris, nous devons indiquer l'état d'arrivée de l'image concernée. Il s'agit des deux photos associées au style haut, soit celles qui sont situées au-dessus des deux autres. Pour que ces dernières apparaissent progressivement sur une durée de deux secondes, nous devons rendre transparentes celles du dessus.
  • A la suite du code Css, créer le style suivant :
.fondu img.haut:hover
{

}


La technique est similaire à la précédente. Nous ciblons uniquement les images associées au style haut dans les calques affectés au style fondu, mais aussi et surtout au survol de la souris (hover). Comme la transition est réglée pour les images de ce calque et que l'état d'arrivée est défini au survol sur certaines images de ce calque, nous allons pouvoir déclencher l'effet escompté. Pour cela, il nous reste à ajouter le réglage sur l'opacité.
  • A l'intérieur de ce nouveau style, ajouter l'instruction Css suivante :
.fondu img.haut:hover
{
opacity:0;
}


Avec l'opacité réglée à zéro, l'image devient complètement transparente pour laisser progressivement sa place à celle du dessous. Il ne nous reste plusqu'à tester.
  • Enregistrer les modifications (CTRL + S) et revenir sur le navigateur Web,
  • Actualiser le cache avec le raccourci clavier CTRL + F5,
  • Passer la souris sur les images,
Effet de fondu sur des images Html empilées grâce aux styles Css

Comme vous pouvez l'apprécier, l'effet de fondu a été réalisé avec succès. L'image du dessous apparaît progressivement au fur et à mesure que l'opacité de la photo du dessus diminue.

 
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