Per noi Web Designer avere un portfolio in cui sono presenti i nostri lavori è fondamentale, ma ancor più fondamentale è creare un portfolio con qualche effetto che stupisca e stimoli i nostri futuri clienti. Oggi voglio spiegarti come creare un portfolio lavori dove puoi filtrare le categorie e animare le anteprime grazie a un fantastico plugin e qualche riga di codice. Il plugin di cui ti sto parlando è Quicksand.js.
Html
Il documento che dovrai editare sarà composto da Html5 poiché Quicksand per funzionare ha bisogno di alcuni tag Html5 ed in particolare dell’attributo “data”. Questo è tutto l’ Html di cui hai bisogno, sono davvero pochissime righe.
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Tutorial Portfolio Quicksand.js</title> <link rel="stylesheet" href="css/style.css"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.quicksand.js"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/script.js"></script> </head> <body> <div id="container"> <h1>Tutorial Portfolio Quicksand.js</h1> <ul id="filter"> <li class="active"><a href="#" class="all">All</a></li> <li><a href="#" class="web">WEB</a></li> <li><a href="#" class="mobile">MOBILE</a></li> <li><a href="#" class="flayer">FLAYER</a></li> </ul><!--\ end filter --> <ul class="holderfilter"> <li class="item" data-id="id-1" data-type="web"> <img src="images/web.png" alt="" /> </li> <li class="item" data-id="id-2" data-type="mobile"> <img src="images/mobile.png" alt="" /> </li> <li class="item" data-id="id-3" data-type="flayer"> <img src="images/flayer.png" alt="" /> </li> <li class="item" data-id="id-4" data-type="flayer"> <img src="images/flayer.png" alt="" /> </li> <li class="item" data-id="id-5" data-type="web"> <img src="images/web.png" alt="" /> </li> <li class="item" data-id="id-6" data-type="mobile"> <img src="images/mobile.png" alt="" /> </li> <li class="item" data-id="id-7" data-type="flayer"> <img src="images/flayer.png" alt="" /> </li> <li class="item" data-id="id-8" data-type="web"> <img src="images/web.png" alt="" /> </li> <li class="item" data-id="id-9" data-type="flayer"> <img src="images/flayer.png" alt="" /> </li> <li class="item" data-id="id-10" data-type="mobile"> <img src="images/mobile.png" alt="" /> </li> </ul><!--\ end holderfilter --> </div><!--\ end container --> </body> </html>
jQuery
Come avrai notato nell’ head del documento Html ho inserito quattro file javascript che ti serviranno per far funzionare il tutto.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.quicksand.js"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/script.js"></script>
Di questi quattro script quello che devi modificare a seconda delle tue esigenze è il quarto (script.js). In questo script devi impostare la “sorgente” e la “destinazione”. La sorgente in questo caso è “#filter”, mentre la destinazione è “ul.olderfilter”. Come puoi vedere la “sorgente” è presente nella terza, settima e nona riga mentre la “destinazione” è presente solo nella quarta riga. Altri valori interessanti sono “duration:750” che indica il tempo dell’animazione in millisecondi e “easing: easeInOutQuad” che indica l’andamento dell’animazione che abbiamo scelto.
$(document).ready(function() { var $filterType = $('#filter li.active a').attr('class'); var $holder = $('ul.holderfilter'); var $data = $holder.clone(); $('#filter li a').click(function(e) { $('#filter li').removeClass('active'); var $filterType = $(this).attr('class'); $(this).parent().addClass('active'); if ($filterType == 'all') { var $filteredData = $data.find('li'); } else { var $filteredData = $data.find('li[data-type=' + $filterType + ']'); } $holder.quicksand($filteredData, { duration: 750, easing: 'easeInOutQuad' }); return false; }); });
Css
Ora devi solo stilizzare il tutto con i Css, basta qualche regola ed il gioco è fatto.
/* general */ html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; } body { font: 14px "Helvetica", Arial, sans-serif; color: #000; } ul { list-style: none; margin: 0; padding: 0; } #container { width: 960px; margin: 0 auto; } h1 { text-align: center; } /* filter */ #filter { width: 330px; margin: 30px 0 30px 10px; overflow: hidden; } #filter li { display: inline-block; float: left; } #filter li a { padding: 5px 20px; color: #000; text-decoration: none; display: block;} #filter li a:hover { text-decoration: underline; } #filter li.active a { background: #555; color: #fff; } /* filterolder */ .holderfilter { width:960px; height:850px; overflow:hidden;} .holderfilter li.item { width: 220px; height: 165px; padding: 10px; float: left; overflow: hidden;}
Conclusioni
Con qualche riga di Html, Css e jQuery puoi avere un fantastico portfolio per ammaliare i tuoi clienti. Naturalmente puoi usare questo script per filtrare qualsiasi altro elemento. Cosa aspetti allora ? Mettiti subito all’opera ed implementa Quicksand nel tuo portfolio personale per filtrare i tuoi lavori. Se ti và nei commenti linkami il risultato che hai ottenuto. Per oggi è tutto, buona lettura e alla prossima.
Codice tratto da: http://goo.gl/8uIYV