Op het moderne web zijn er talloze technieken die kunnen worden gebruikt om interessante interacties te creëren, maar de eenvoudigste en meest elegante is meestal CSS, en met name de toevoegingen die met CSS3 werden geleverd.
Vroeger moesten we voor dit soort effecten op JavaScript vertrouwen, maar dankzij de steeds groter wordende ondersteuning voor CSS3 via verschillende browsers, is het nu mogelijk om dergelijke effecten helemaal zonder scripting in te stellen. Er zijn helaas nog steeds browsers (IE9 en lager) die CSS3 niet ondersteunen, dus je hebt een terugval nodig voor oudere browsers of om het effect te behandelen als een progressieve verbetering.
Vandaag gaan we bekijken hoe we koele, maar nette hover-effecten kunnen toepassen om bijschriften van afbeeldingen te tonen en te verbergen.
Als u de code wilt volgen, kunt u dit doen download de bestanden hier.
De eerste demo is onze eenvoudigste: het beeld zal naar rechts vliegen om het bijschrift te onthullen.
Voor onze CSS zullen we relatieve positionering instellen voor onze demo-1 klasse en dan de breedte en hoogte instellen . We zullen ook de overgegooide elementen verbergen. Ik heb ook een aantal basisstijlen voor mijn h2- en p- tags toegevoegd, evenals mijn afbeeldingstag. Nu voor onze effectklasse zullen we de positionering op absoluut instellen en een marge van -15px geven aan de boven- en onderkant. We zullen de overgang van CSS3 gebruiken om een soepel effect te creëren. Onze CSS ziet er zo uit:
.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}
Onze tweede demo laat het beeld naar beneden glijden. Dit betekent dat wanneer u uw muis over de afbeelding beweegt, het bijschrift erboven zal worden onthuld.
Onze CSS zal bijna hetzelfde zijn als de eerste demo, behalve dat we deze keer onze afbeelding naar beneden verplaatsen door de eigenschap onderaan in te stellen op -96px. We zullen ook de overgang van CSS3 gebruiken om een soepel effect te creëren:
.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}
Voor onze laatste demo maken we een flipping card-effect. Dit betekent dat wanneer u met uw muis over de afbeelding beweegt, deze rond de as zal draaien om de beschrijving te onthullen.
In onze CSS zullen we het figuurbeeld op een relatieve positie plaatsen en vervolgens de achtergrondherkenning verbergen. We gebruiken ook de rotateY- transformatie: -180 graden voor figcaption en veranderen deze vervolgens in 180 graden voor de zweeftekst van zowel de afbeelding als het bijschrift:
.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)}