Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
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.
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,
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.