Galeria w css3 i javascript
W tym tutorialu pokażę jak stworzyć w css3 i javascript ciekawą kółkową galerię zdjęć. Kod html wygląda następująco
<div class="photos"> <div id="photo1" class="photo"><a href="images/285666_5142.jpg"></a></div> <div id="photo2" class="photo"><a href="images/837925_57143594.jpg"></a></div> <div id="photo3" class="photo"><a href="images/864465_43298257.jpg"></a></div> </div> <div class="popup_lightbox"> <a href="#" id="close_popup"><img src="images/close.png" alt="X" /></a> </div> <div id="overlay"></div>W pojemniku o klasie photos znajdują się trzy kolejne divy każdy o klasie photo z naszymi zdjęciami. W divie o klasie popup_lightbox będziemy pokazywać powiększone zdjęcie, natomiast pojemnik o klasie overlay to tzw. wyciemnienie tła w trakcie pokazywania powiększonego zdjęcia. Teraz zajmiemy się stylami css. Każdy div o klasie photo pozycjonujemy relatywnie i nadajemy mu styl float. Ponadto aby zmienić go w kółko dodajemy styl css3 border-radius. Każdy z divów (o id photo1, photo2 itd.) będzie miał ustawione tło na odpowiednie zdjęcie. Div o klasie popup_lightbox na razie ma ustawiony display: none, ponieważ będziemy go pokazywać po kliknięciu. Ustawiamy mu również border-radius, dzięki temu zdjęcie powiększone będzie większym kołem. Kliknięty div będzie miał przypisaną klasę popup_active.
body { background-color:#131110; } div.photo { float:left; width:149px; height:148px; margin:12px; position:relative; border: 1px solid transparent; -moz-border-radius: 105px; -webkit-border-radius: 105px; border-radius: 105px; } div.photo a { width:150px; height:150px; display:block; } div.photo * img { width:170px; height:170px; display:block; } div#photo1 { background: url("../images/285666_sokolnica.jpg") no-repeat center; } div#photo2 { background: url("../images/837925_nice_view_in_the_mountains.jpg") no-repeat center; } div#photo3 { background: url("../images/864465_mountain_view.jpg") no-repeat center; } div#overlay { display:none; position: fixed; top: 0; left: 0; bottom: 0; width: 100%; height:100%; background:black; opacity:0.7; display: none; filter: alpha(opacity = 70); } div.popup_lightbox { display:none; padding:10px; position:relative; border: 1px solid transparent; -moz-border-radius: 1205px; -webkit-border-radius: 1205px; border-radius: 1205px; } #close_popup { float:right; margin:45px 45px 0 0; } div.popup_active { display:block; background: none repeat scroll 0 0 white; border: 20px solid white; left: 50%; margin-left: -400px; position: fixed; top: 8%; width: 650px; height:650px; z-index: 100; }Pozostaje już tylko kod javascript, a dokładniej użyjemy biblioteki jQuery.
$(document).ready(function() { var obrazek_duzy; $('div.photo a').click(function() { $('div.popup_lightbox').addClass('popup_active'); $('div#overlay').css('display','block'); obrazek_duzy = $(this).attr('href'); $('div.popup_lightbox').css('background','url('+obrazek_duzy+')'); return false; }); $('#close_popup').click(function() { $('div.popup_lightbox').removeClass('popup_active'); $('div#overlay').css('display','none'); $('div.popup_lightbox').css('background','none'); return false; }); });