Sur le Web moderne, de nombreuses techniques peuvent être utilisées pour créer des interactions intéressantes, mais les plus simples et les plus élégantes sont généralement les CSS, et plus particulièrement les ajouts fournis avec CSS3.
Auparavant, nous devions utiliser JavaScript pour ce type d'effet, mais grâce à la prise en charge croissante de CSS3 sur tous les navigateurs, il est désormais possible de configurer des effets comme ceux-ci sans aucun script. Il existe malheureusement encore des navigateurs (IE9 et versions ultérieures) qui ne prennent pas en charge CSS3. Vous avez donc besoin d’une solution de rechange pour les navigateurs existants ou d’un traitement progressif.
Aujourd'hui, nous allons voir comment appliquer des effets de vol stationnaire sympas mais nets pour afficher et masquer les légendes des images.
Si vous préférez suivre avec le code, vous pouvez téléchargez les fichiers ici.
La première démo est la plus simple: l'image volera à sa droite pour révéler la légende.
Pour notre CSS, nous allons définir le positionnement relatif de notre classe démo-1 , puis définir la largeur et la hauteur . Nous allons également masquer les éléments débordés. J'ai aussi mis des styles de base pour mes balises h2 et p ainsi que mon tag image. Maintenant, pour notre classe d'effet, nous allons définir le positionnement sur absolu et lui donner une marge de -15px en haut et en bas. Nous allons utiliser la transition de CSS3 pour créer un effet fluide. Notre CSS ressemble à ceci:
.demo-1 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-1 p,.demo-1 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-1 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-1 h2 {font-family:'Lato';font-size:20px;line-height:24px;margin:0;}.effect img {position:absolute;margin:-15px 0;right:0;top:0;cursor:pointer;-webkit-transition:top .4s ease-in-out,right .4s ease-in-out;-moz-transition:top .4s ease-in-out,right .4s ease-in-out;-o-transition:top .4s ease-in-out,right .4s ease-in-out;transition:top .4s ease-in-out,right .4s ease-in-out}.effect img.top:hover {top:-230px;right:-330px;padding-bottom:200px;padding-left:300px}
Notre deuxième démo montrera l'image en glissant vers le bas. Cela signifie que lorsque vous passez votre souris sur l'image, la légende sera affichée au-dessus.
Notre CSS sera presque la même que la première démo, sauf que cette fois, nous déplacerons notre image vers le bas par les paramètres de la propriété en bas à -96px. Nous allons également utiliser la transition de CSS3 pour créer un effet fluide:
.demo-2 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-2 p,.demo-2 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-2 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-2 h2 {font-size:20px;line-height:24px;margin:0;font-family:'Lato'}.effect img {position:absolute;left:0;bottom:0;cursor:pointer;margin:-12px 0;-webkit-transition:bottom .3s ease-in-out;-moz-transition:bottom .3s ease-in-out;-o-transition:bottom .3s ease-in-out;transition:bottom .3s ease-in-out}.effect img.top:hover {bottom:-96px;padding-top:100px}h2.zero,p.zero {margin:0;padding:0}
Pour notre dernière démo, nous allons créer un effet de carte retournable. Cela signifie que lorsque vous passez votre souris sur l’image, elle la fait tourner sur son axe pour révéler la description.
Dans notre CSS, nous placerons l'image de la figure sur une position relative , puis masquerons la visibilité de la face arrière . Nous allons également utiliser la transformation rotateY : -180 degrés pour figcaption , puis la changer à 180 degrés pour le survol de l'image et de la légende:
.demo-3 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px}.demo-3 figure {margin:0;padding:0;position:relative;cursor:pointer;margin-left:-50px}.demo-3 figure img {display:block;position:relative;z-index:10;margin:-15px 0}.demo-3 figure figcaption {display:block;position:absolute;z-index:5;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.demo-3 figure h2 {font-family:'Lato';color:#fff;font-size:20px;text-align:left}.demo-3 figure p {display:block;font-family:'Lato';font-size:12px;line-height:18px;margin:0;color:#fff;text-align:left}.demo-3 figure figcaption {top:0;left:0;width:100%;height:100%;padding:29px 44px;background-color:rgba(26,76,110,0.5);text-align:center;backface-visibility:hidden;-webkit-transform:rotateY(-180deg);-moz-transform:rotateY(-180deg);transform:rotateY(-180deg);-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure img {backface-visibility:hidden;-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure:hover img,figure.hover img {-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);transform:rotateY(180deg)}.demo-3 figure:hover figcaption,figure.hover figcaption {-webkit-transform:rotateY(0);-moz-transform:rotateY(0);transform:rotateY(0)}