-
animation par un autre élément
Rappel: un élément peut être animé par l'action sur un autre élément, ceci au clic ou au survol. code:#el surv ~ #el anim{attributs).
Les seules contraintes sont:
- que l'élément survolé précède, dans le code html, l'élément animé; leur position dans l'article est celle de votre choix.
- qu'ils soient du même niveau, c'est à dire qu'une division anime une division (<div>), un paragraphe anime un paragraphe (<p>) ou une image anime une autre image (<img).
Le principe s'adaptant à bien des structures, voici simplement quelques exemples: les cadres (div, p) se placent, par défaut, les uns sous les autres; vous pouvez donc en écrire plusieurs avec le même genre d'animation.
La modification d'un élément déplace les autres, en fonction des positionnements choisis; les modifications peuvent être de différentes natures.
Elément 1 survolé
Elément 1 animé
Dans ce cadre, vous pouvez placer texte, image, gif, vidéo...
Dans ce premier exemple, l'élément animé a une hauteur de 0px au départ et de 200px au survol de l'élément 1 et son opacité passe de invisible à opaque.Elément 2 survolé
Elément 2 animé
Dans ce second exemple, c'est la largeur qui est de 0px et la hauteur reste à 200px.
Au survol de l'élément 2, sa largeur passe à 400px.
idem pour l'opacitéElément 3 survolé
Elément 3 survolé
L'élément animé peut être indépendant du contenu de la page et se placer où bon nous semble, au dessus d'autres éléments.
<p id="x1">Elément 1 survolé</p>
<p id="x1a">Elément 1 animé</p>
<p id="x2">Elément 2 survolé</p>
<p id="x2a">Elément 2 animé</p>
<p id="x3">Elément 3 survolé</p>
<p id="x3a">Elément 3 survolé</p>
<style><!--
#x1, #x2{width:150px; height:20px; border:1px solid black; background:yellow; text-align:center;transform:translate(0px,0px);}
#x3{width:150px; height:20px; border:1px solid black; background:yellow; text-align:center;transform:translate(0px,-200px);}
#x1a{width:400px; height:0px; border:1px solid black; background:pink; text-align:center; font-size:14pt;transform:translate(200px,-40px); transition:all 1s linear; opacity:0;}
#x1:hover ~ #x1a{height:200px; opacity:1;}
#x2a{width:0px; height:200px; border:1px solid black; background:pink; text-align:center; font-size:14pt;transform:translate(200px,-100px); transition:all 1s linear; opacity:0;}
#x2:hover ~ #x2a{width:400px; opacity:1;}
#x3a{position:absolute;width:0px; height:0px; border:1px solid black; background:pink; text-align:center; font-size:14pt;transform:translate(200px,-380px); transform-origin:center center; transition:all 1s linear; opacity:0;}
#x3:hover ~ #x3a{z-index:5; width:400px; height:200px; opacity:1;}
--></style>