Wstawiamy galerię na stronę
Dziś pokażę Wam jak wstawić ładną galerię na swoją stronę. Po kliknięciu na zdjęcie – pojawiać się ono będzie powiększone na środku strony.
Wykorzystam do tego darmowy skrypt jQuery – Fancybox.
Strona składa się z plików:
index.html
style.css
Folderów:
fancybox (folder ze skryptem)
foto (folder ze zdjęciami)
script (plik fancybox.js)
W kodzie w index.html w <head></head> wstawiamy kod galerii:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="script/fancybox.js"></script> <script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script> <link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" /> <link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
W miejscu gdzie chcemy wstawić zdjęcia, dajemy kod:
<a class="fancybox-thumb" data-fancybox-group="group1" href="foto/1.jpg"><img src="foto/1_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/2.jpg"><img src="foto/2_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/3.jpg"><img src="foto/3_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/4.jpg"><img src="foto/4_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/5.jpg"><img src="foto/5_small.jpg" alt="foto"/></a>
Wcześniej zróbmy również miniaturki zdjęć, przyśpieszy to ładowanie strony.
Plik w folderze script – fancybox.js:
jQuery(document).ready(function($) { $(".fancybox-thumb").fancybox({ prevEffect : 'none', nextEffect : 'none', autoSize : true, scrolling : 'auto', fitToView : false, width : 'auto', maxWidth : '90%', }); });
W tym pliku możemy ustawić opcje galerii, jak automatyczne skalowanie, scroolowanie, maxymalna szerokość zdjęcia, ja dałam na 90%, akurat robiłam stronę pod mobilne urządzenia i potrzebowałam jak największych zdjęć, by ładnie zajmowały prawie cały ekran.
Cały kod html wygląda tak:
<!DOCTYPE html> <html lang="pl"> <head> <meta charset="utf-8"> <title>Galeria</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="robots" content="index, follow" /> <meta name="description" content=""/> <meta name="keywords" content=""/> <meta name="author" content="www.tworzenie-stronek.pl" /> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="style.css" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="script/fancybox.js"></script> <script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script> <link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" /> <link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" /> </head> <body> <div id="wrapper"> <div class="page"> <div id="top"> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/1.jpg"><img src="foto/1_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/2.jpg"><img src="foto/2_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/3.jpg"><img src="foto/3_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/4.jpg"><img src="foto/4_small.jpg" alt="foto"/></a> <a class="fancybox-thumb" data-fancybox-group="group1" href="foto/5.jpg"><img src="foto/5_small.jpg" alt="foto"/></a> </div> </div> <div id="clear"></div> <div id="footer"> stopka </div> </div> </body> </html>
Cały kod css strony wygląda tak:
* { padding: 0; margin: 0; } html, body { font-family: Tahoma, sans-serif; font-weight: 300; width: 100%; height: 100%; font-size: 15px; color: #000000; margin: 0 auto; background-color: #FFFFFF; } a {outline: none; text-decoration: none; color: #000000;} a:hover {text-decoration: underline; color: #000000;} #wrapper { margin: 0 auto -150px; min-height: 100%; position: relative; } #clear{ clear: both; height: 150px; } .page { margin: 0 auto; } #top{ float: left; width: 100%; padding-top: 5%; position: relative; } #top img{ width: 17%; margin: 0.3%; padding: 0.4%; background-color: #D2D2D2; transition-duration: 0.3s; transition-timing-function: linear; } #top img:hover{ background-color: #FFFFFF; } #footer { float: left; width: 100%; height: 130px; padding-top: 20px; bottom: 0px; position: absolute; text-align: center; font-size: 13px; background-color: #EEEEEE; } #footer a{ text-decoration: underline; } img { border: 0px; } @media (min-width: 1581px) { #wrapper{width:100%;} .page{width:1180px;} } @media (min-width: 1085px) and (max-width: 1580px){ #wrapper{width:100%;} .page{width:100%;} }
Chcąc ładnie umieścić miniaturki na stronie, jeden obok drugiego, równe, to dodałam do kodu css:
#top img{ width: 17%; margin: 0.3%; padding: 0.4%; background-color: #D2D2D2; transition-duration: 0.3s; transition-timing-function: linear; } #top img:hover{ background-color: #FFFFFF; }
Spakowany plik fancyboxa umieściłam na blogu, by ułatwić Wam pracę, można pobrać tutaj: fancybox
Tak wygląda galeria na stronie:
Gotowe. Mamy ładną i szybko działającą galerię 🙂