På den moderne nettsiden finnes det mange teknikker som kan brukes til å skape interessante interaksjoner, men det enkleste og mest elegante er vanligvis CSS, og spesielt tilleggene som fulgte med CSS3.
Tidligere måtte vi stole på JavaScript for denne typen effekt, men takket være stadig økende støtte til CSS3 på tvers av nettlesere, er det nå mulig å sette opp effekter som disse uten noen skripting i det hele tatt. Det er dessverre fortsatt nettlesere (IE9 og under) som ikke støtter CSS3, slik at du enten trenger en tilbakebetaling for eldre nettlesere eller for å behandle effekten som en progressiv forbedring.
I dag skal vi se på hvordan vi kan bruke kule, men ryddige hovereffekter for å vise og skjule bilder bildetekster.
Hvis du foretrekker å følge med koden, kan du last ned filene her.
Den første demo er vår enkleste: bildet vil fly til sin rett for å avsløre bildeteksten.
For vår CSS vil vi angi relativ posisjonering for vår demo-1 klasse og deretter sette opp bredde og høyde . Vi vil også skjule overflødige elementer. Jeg har også satt noen grunnleggende stiler for min h2 og p- koder, så vel som min bilde tag. Nå for vår effektklasse vil vi sette posisjoneringen til absolutt og gi den en margin på -15 px til toppen og bunnen. Vi vil bruke CSS3s overgang for å skape en jevn effekt. Vår CSS ser slik ut:
.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}
Vår andre demo vil vise bildet som glir ned. Dette betyr at når du holder musen over bildet, vil bildeteksten bli avslørt over det.
Vår CSS vil være nesten det samme som den første demoen, bortsett fra at denne gangen vil vi flytte bildet nedover ved å sette inn egenskapen bunn til -96px. Vi bruker også CSS3s overgang for å skape en jevn effekt:
.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}
For vår siste demo, vil vi opprette en flipping-korteffekt. Dette betyr at når du svever musen på bildet, vil den rotere den rundt på sin akse for å avsløre beskrivelsen.
I vårt CSS, vil vi sette figurbildet til en relativ posisjon og deretter skjule backface-synligheten . Vi vil også bruke rotateY transformen: -180 grader for figcaption og deretter endre den til 180 grader for svingeren til både bildet og bildeteksten:
.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)}