Na moderním webu existuje řada technik, které mohou být použity k vytváření zajímavých interakcí, ale nejjednodušší a nejvíce elegantní je obvykle CSS a konkrétně doplňky, které přicházejí s CSS3.
V minulých dnech jsme museli spoléhat na JavaScript pro tento druh efektu, ale díky stále rostoucí podpoře CSS3 v prohlížečích je nyní možné vytvářet efekty, jako jsou tyto bez jakéhokoli skriptování. Existují smutně ještě prohlížeče (IE9 a níže), které nepodporují CSS3, takže buď budete potřebovat záložní verzi pro starší prohlížeče, nebo budete považovat efekt za progresivní vylepšení.
Dnes se podíváme na to, jak můžeme aplikovat chladné, ale čisté efekty hoveru, abychom zobrazili a skryli titulky obrázků.
Pokud byste chtěli dodržovat kód, můžete Zde si stáhněte soubory.
První demo je naše nejjednodušší: obraz bude letět na jeho pravé odhalit titulky.
Pro naše CSS nastavíme relativní umístění pro naši demo-1 třídu a pak nastavíme šířku a výšku . Budeme také skrývat přeplněné prvky. Také jsem dal některé základní styly pro můj h2 a p tagů, stejně jako moje image tag. Nyní pro třídu efektu nastavíme polohování na absolutní a dáváme mu horní a dolní hranici -15px. Použijeme přechod CSS3 k vytvoření hladkého efektu. Naše CSS vypadá takto:
.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}
Druhé demo zobrazí obrázek, který se posune dolů. To znamená, že když podržíte myš nad obrázkem, zobrazí se nad ním nadpis.
Naše CSS bude téměř stejné jako první demo, s tou výjimkou, že tentokrát posuneme náš obrázek dolů nastavením dolní části vlastnosti na -96px. Použijeme také přechod CSS3 k vytvoření hladkého efektu:
.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}
Pro poslední ukázku vytvoříme efekt převrácené karty. To znamená, že když umístíte kurzor myši na obrázek, otočí se kolem jeho osy a objeví popis.
V našem CSS nastavíme obrázek obrázku na relativní pozici a pak skryjeme viditelnost zadní strany . Také použijeme rotační transformaci: -180 stupňů pro změnu obrázku a změníme ji na 180 stupňů pro vznášení obrázku i titulku:
.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)}