Pubblicato il 03/08/14e aggiornato il

Galleria di miniature con link che si ingrandiscono al passaggio del mouse.

Come realizzare una semplice galleria di immagini solo con il CSS per poi pubblicarla in una pagina statica e che mostra le foto ingrandite e con la descrizione al passaggio del cursore
Le Gallerie di Foto sono una delle personalizzazioni più usate in tutti i siti dilettantistici o professionali che siano. Ho già presentato diversi slideshow automatici e manuali per mostrare una raccolta di immagini che però abbisognano quasi sempre di librerie esterne di javascript che rallentano il caricamento delle pagine. In questo articolo voglio illustrare una metodologia molto semplice per creare una galleria di miniature che al passaggio del cursore si ingrandiscono e mostrano la foto più grande con la descrizione della stessa. 

Opzionalmente si può aggiungere a ciascuna miniatura anche un collegamento in modo che chi ci clicca sopra possa aprire una data pagina del blog oppure anche esterna ad esso. L'effetto si ricava solo con il CSS e può essere inserito nel modello oppure semplicemente nella pagina in cui visualizzare la galleria di foto.




Le immagini possono essere configurate con la stessa dimensione ed è stato impostato un colore di sfondo giallo chiaro (lightyellow) con il bordo grigio (gray) tratteggiato (dashed) e con la descrizione di colore nero (black). Al posto del nome dei colori in inglese si possono usare i codici dei colori per rendere l'aspetto della galleria più adatto al nostro sito. Ricordo che se si usano i codici dei colori dobbiamo anteporre a ciascuno di essi il cancelletto (Es: #000 per black) che invece non deve essere messo per i nomi dei colori. Se vogliamo realizzare la galleria in una sola pagina statica eventualmente depurata di sidebar e footer basta andare su Pagine > Nuova pagina e in HTML incollare questo codice 

<style type='text/css'>
.thumbnail{
position: relative;
z-index: 0;
}
.thumbnail:hover{
background-color: transparent;
z-index: 9999;
}
.thumbnail span{ /* CSS per le immagini allargate */
position: absolute;
background-color: lightyellow; /* Colore dello sfondo */
padding: 5px;
left: -1000px;
border: 1px dashed gray; /* Colore e stile del bordo */
visibility: hidden;
color: black;
text-decoration: none;
}
.thumbnail span img{ /*CSS per le immagini allargate */
border-width: 0;
padding: 2px;
}
.thumbnail:hover span{ /*CSS per le immagini allargate al passaggio del mouse*/
visibility: visible;
top: 0;
left: 60px; /*posizione orizzontale per inizio immagine allargata */
}
</style>
<a class="thumbnail" href="#thumb"><img src="https://lh3.googleusercontent.com/-mRf004w_PTg/UBOwI0yMqZI/AAAAAAAAZQk/p6e-YVrN5dQ/s300/albero.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh3.googleusercontent.com/-mRf004w_PTg/UBOwI0yMqZI/AAAAAAAAZQk/p6e-YVrN5dQ/s300/albero.jpg" width="300"/><br />Albero con nuvola.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh4.googleusercontent.com/-MIvPAdQZSNA/UBOwMSdXh8I/AAAAAAAAZQs/CbwiQAxaMBc/s300/alci.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh4.googleusercontent.com/-MIvPAdQZSNA/UBOwMSdXh8I/AAAAAAAAZQs/CbwiQAxaMBc/s300/alci.jpg" width="300"/><br />Erbivori della savana.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh6.googleusercontent.com/-XOWrP_B8gZY/UBOwP15f_hI/AAAAAAAAZQ0/RT7z-36a2sE/s300/bruco.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh6.googleusercontent.com/-XOWrP_B8gZY/UBOwP15f_hI/AAAAAAAAZQ0/RT7z-36a2sE/s300/bruco.jpg" width="300"/><br />Bruco che mangia foglia.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh4.googleusercontent.com/-kZlXtFqccww/UBOwyQWLZXI/AAAAAAAAZQ8/WGEujavaKsk/s300/cavalli.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh4.googleusercontent.com/-kZlXtFqccww/UBOwyQWLZXI/AAAAAAAAZQ8/WGEujavaKsk/s300/cavalli.jpg" width="300"/><br />Lotta tra stalloni.</span></a>
<br/>
<a class="thumbnail" href="#thumb"><img src="https://lh4.googleusercontent.com/-PurO6FbS0cc/UkKaf_S6CqI/AAAAAAAAjlk/UZoPvVM9VXk/w590-h335-no/monte-neve.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh4.googleusercontent.com/-PurO6FbS0cc/UkKaf_S6CqI/AAAAAAAAjlk/UZoPvVM9VXk/w590-h335-no/monte-neve.jpg" width="300"/><br />Monte innevato.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh4.googleusercontent.com/-RHzpXk63YVI/UkKadYOKQhI/AAAAAAAAjlc/uQIgEYPrEdQ/w590-h335-no/inverno.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh4.googleusercontent.com/-RHzpXk63YVI/UkKadYOKQhI/AAAAAAAAjlc/uQIgEYPrEdQ/w590-h335-no/inverno.jpg" width="300"/><br />Paesaggio invernale.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh3.googleusercontent.com/-pJ8AvHwMPCg/UkKalCRIeFI/AAAAAAAAjl0/qjSnmXDtgLU/w590-h335-no/tramonto.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh3.googleusercontent.com/-pJ8AvHwMPCg/UkKalCRIeFI/AAAAAAAAjl0/qjSnmXDtgLU/w590-h335-no/tramonto.jpg" width="300"/><br />Tramonto sul mare.</span></a>
<a class="thumbnail" href="#thumb"><img src="https://lh4.googleusercontent.com/-f1WIgAn1KKA/UkKan8ASUmI/AAAAAAAAjl8/yLoRPOWYdXA/w590-h335-no/villaggio.jpg" width="100px" height="66px" border="0" /><span><img src="https://lh4.googleusercontent.com/-f1WIgAn1KKA/UkKan8ASUmI/AAAAAAAAjl8/yLoRPOWYdXA/w590-h335-no/villaggio.jpg" width="300"/><br />Villaggio su fiume.</span></a>

Ovviamente poi si pubblica la Pagina. Si può anche usare un semplice post oppure anche un widget HTML/Javascript. Nel codice di demo ho usato 8 immagini divise in due righe da 4 dal tag <br/> che è un salto di riga.  Ciascun URL è stato incollato due volte, una per la miniatura e l'altra per l'immagine grande. Le dimensioni proposte sono 100x66 pixel per quello che riguarda le miniature e 300 pixel di larghezza per le immagini al passaggio del mouse. Tali valori possono essere modificati.
Come vedete in ciascun blocco di codice è stata inserita la classe thumbnail e la descrizione della foto colorata di blu. Se si vuole collegare una pagina web a ciascuna immagine dobbiamo modificare i blocchi di codice in questo modo 

<a class="thumbnail" href="http//www.ideepercomputeredinternet.com#thumb">

in cui ho inserito l'URL di questo blog. Nel caso si voglia aprire la pagina in un'altra scheda si può inserire il tag target="_blank" in questo modo

<a class="thumbnail" href="URL_LINK#thumb" target="_blank">

COMPLEMENTI


Se invece di miniature si volessero visualizzare solo dei link che poi mostrano le immagini al passaggio del cursore, ogni blocco di codice diventerebbe 

<a class="thumbnail" href="URL_LINK#thumb" >Testo visualizzato nel link<span><img src="URL_IMMAGINE" /><br />Descrizione della immagine</span></a>

Volendo si possono mostrare anche tutte le immagini del sito con questo meccanismo. Dovremo però incollare il codice che va da <style… > a </style> nel template subito sopra a </head> e pubblicare le immagini con la classe thumbnail o incollarla nelle foto già postate. L'identificatore di frammento #thumb l'ho inserito perché è presente nel tutorial di Dynamic Drive da cui ho ricavato il post ma in verità può anche essere tralasciato senza problemi.




9 commenti :

  1. Ho usato e adattato il codice per creare una photo gallery nel mio blog, funziona benissimo, grazie!
    Ho solo un problema: come si fa a visualizzare l'intero blocco dei thumbnail al centro della pagina invece che ancorato a sinistra?
    Grazie ancora.
    Mirco.

    RispondiElimina
    Risposte
    1. Non si può fare in modo semplice c'è il tag position: relative; quindi i posizionamenti sono collegati. Bisognerebbe cambiare tutto il codice
      @#

      Elimina
    2. @# Mi correggo. Si può fare. Basta incollare questa riga
      <div align='center'>
      prima della prima riga con
      <a class="thumbnail" href="#thumb">
      e la riga
      </div>
      alla fine del codice.

      Elimina
    3. Grazie mille, ci provo subito ;)

      Elimina
  2. Perfetto, funziona!
    Grazie ancora Ernesto!

    RispondiElimina
  3. Questo commento è stato eliminato dall'autore.

    RispondiElimina
  4. Ho usato il tuo codice ma le immagini vengono in verticale, una sotto l'altra. Vedo invece dal tuo esempio che sono in colonna orizzontale per quattro poste su due righe. Dove sbaglio?
    Saluti Giu

    RispondiElimina
    Risposte
    1. E' tutta una questione di dimensioni. Diminuisci le dimensioni delle immagini e le vedrai a due a due, diminuiscile ancora e le vedrai a tre a tre e poi, se sono ancora più piccole a 4 a 4. Puoi anche allargare la dimensione della pagina statica
      http://www.ideepercomputeredinternet.com/2015/08/nascondere-sidebar-footer-commenti-pagine-blogger.html
      @#

      Elimina
    2. Ringrazio per l'aiuto che mi hai dato.
      Saluti, Giu

      Elimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti. Se ti ho aiutato con il post o con le risposte ai commenti condividi su Facebook o su Twitter. Grazie.