Il codice HTML si compone di un div contenitore, che contiene un div per le miniature (div id="thumbs") e un div per le immagini ingrandite (div id="large"). Una tessera del mosaico contiene un testo (div class="title").
L'attributo onclick di ciascuna miniatura richiama la funzione javascript zoomImg. Il parametro passato alla funzione coincide con l'inizio del nome della relativa immagine ingrandita.
Codice HTML
<div id="contenitore"> <!-- miniature --> <div id="thumbs"> <img onclick="zoomImg('01')" src="img/01_thumb.jpg" alt="" /> <img onclick="zoomImg('02')" src="img/02_thumb.jpg" alt="" /> <img onclick="zoomImg('03')" src="img/03_thumb.jpg" alt="" /> <div class="title"> <p><span>Titolo</span>testo</p> </div> <img onclick="zoomImg('04')" src="img/04_thumb.jpg" alt="" /> <img onclick="zoomImg('05')" src="img/05_thumb.jpg" alt="" /> </div> <!-- immagini ingrandite --> <div id="large"> <img src="img/01.jpg" alt="" /> <img src="img/02.jpg" alt="" /> <img src="img/03.jpg" alt="" /> <img src="img/04.jpg" alt="" /> <img src="img/05.jpg" alt="" /> </div> </div>Questo è il codice CSS:
#contenitore{ position:relative; width: 630px; height: 420px; margin: 20px auto; background: transparent url('img/texture.png') bottom left no-repeat; } #thumbs img{ float:left; width: 210px; cursor:url(img/zoom-in.gif),url(img/zoom-in.cur),auto; } .title{ float:left; width: 210px; height: 210px; color:#000; font-family: 'Trebuchet MS', sanserif; text-align:center; } .title p{ padding:40px 10px; margin:0; } .title span{ font-weight: bold; font-size:40px; font-family: 'Architects Daughter', cursive; } #large img{ position:absolute; top:0; left:0; display:none; cursor:url(img/zoom-out.gif),url(img/zoom-out.cur),auto; }
Per il titolo abbiamo scelto un Google Fonts: Architects Daughter.
Per ottenere il cursore a forma di lente (zoom-in, zoom-out), abbiamo creato due immagini .gif e, grazie al sito cursor.cc, i relativi file .cur. Questo per ottenere una maggiore compatibilità tra i vari browser.
Tutte le immagini ingrandite vengono nascoste con display:none per essere visualizzate, al click sulla relativa miniatura, grazie alla funzione javascript:
function zoomImg(s) { $('#large img[src$="'+s+'.jpg"]').show('explode'); $('#large img').click(function(){ $(this).hide('clip', 900); }); }
La funzione utilizza le librerie jQuery e jQuery UI, che devono essere inserite in head.
Per l'ingrandimento abbiamo scelto l'effetto explode, mentre per tornare al mosaico l'effetto clip.
Per approfondire l'argomento:
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.