W nowoczesnych sieciach istnieje wiele technik, które można wykorzystać do tworzenia interesujących interakcji, ale najprostszym i najbardziej eleganckim jest zwykle CSS, a konkretnie dodatki dodane do CSS3.
Dawno temu musieliśmy polegać na JavaScriptu dla tego rodzaju efektu, ale dzięki stale rosnącej obsłudze CSS3 w różnych przeglądarkach, teraz można skonfigurować takie efekty bez żadnych skryptów. Istnieją niestety wciąż przeglądarki (IE9 i poniżej), które nie obsługują CSS3, więc albo będziesz potrzebować zastępstwa dla starszych przeglądarek, albo potraktuj efekt jako progresywne ulepszenie.
Dzisiaj przyjrzymy się, jak możemy zastosować fajne, ale schludne efekty, aby pokazać i ukryć podpisy z obrazami.
Jeśli wolisz śledzić kod, możesz to zrobić pobierz pliki tutaj.
Pierwsze demo jest naszym najprostszym: obraz powieje na prawo, by odsłonić podpis.
Dla naszego CSS ustawimy względne pozycjonowanie dla naszej klasy demo-1, a następnie ustawimy szerokość i wysokość . Ukryjemy również przepełnione elementy. Dodałem także kilka podstawowych stylów dla moich znaczników h2 i p , a także mojego tagu graficznego. Teraz dla naszej klasy efektów ustawimy pozycjonowanie na absolutne i nadamy mu margines -15px na górę i na dół. Użyjemy przejścia CSS3, aby stworzyć gładki efekt. Nasz CSS wygląda następująco:
.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}
Nasze drugie demo wyświetli obraz zsuwany w dół. Oznacza to, że po najechaniu myszą nad zdjęciem, podpis zostanie wyświetlony nad nim.
Nasz CSS będzie prawie taki sam jak pierwsze demo, z tą różnicą, że tym razem przeniesiemy nasz obraz w dół o ustawienia od dołu do -96px. Użyjemy również przejścia CSS3, aby stworzyć płynny efekt:
.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}
W naszym ostatnim demo stworzymy efekt flipowania kart. Oznacza to, że gdy najedziesz myszą na obraz, obrócisz go wokół osi, aby wyświetlić opis.
W naszym CSS ustawimy obraz figurki na pozycję względną, a następnie ukryjemy widoczność strony . Użyjemy również transformaty rotateY : -180 stopni dla figcaption, a następnie zmienimy ją na 180 stopni dla zawisu zarówno obrazu, jak i podpisu:
.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)}