Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Rollover multiplo su mappe di immagine in DHTML

Articolo scritto da Luca Ruggiero

Grazie al DHTML possiamo gestire il famoso effetto rollover anche sulle mappe di immagine, attivando l'effetto al passaggio del mouse su una singola area di un'immagine unica.

Per l'esempio useremo un'immagine molto banale che chiameremo mappa.gif:

Useremo poi altre immagini, di aspetto diverso che enfatizzano l'area su cui sta passando il mouse.

Passaggio sulla prima area di immagine (mappa_1.gif):

Passaggio sulla seconda area di immagine (mappa_2.gif):
Passaggio sulla terza area di immagine (mappa_3.gif):
Passaggio sulla quarta area di immagine (mappa_4.gif):
Vediamo adesso il codice HTML per generare la mappa di immagine, utilizzando un qualsiasi editor HTML di tipo GUI come Front Page o Dreamweaver.

In un secondo momento puliremo ed implementeremo il codice assegnandogli, agli eventi onmouseover ed onmouseout, le funzioni Javascript che vedremo in seguito.

(L'articolo continua più sotto...)

Segue il codice HTML:

<img border="0" src="mappa.gif" usemap="#mappa" name="immagine">
<map name="mappa">
    <area shape="rect" coords="1, 2, 52, 48" href="1.html"
        onmouseover="RollMapOn(1)" onmouseout="RollMapOff()">
    <area shape="rect" coords="53, 2, 100, 49" href="2.html"
        onmouseover="RollMapOn(2)" onmouseout="RollMapOff()">
    <area shape="rect" coords="1, 50, 52, 96" href="3.html"
        onmouseover="RollMapOn(3)" onmouseout="RollMapOff()">
    <area shape="rect" coords="54, 49, 100, 96" href="4.html"
        onmouseover="RollMapOn(4)" onmouseout="RollMapOff()">
</map>
Notate che la funzione che richiamiamo all'evento onmouseover ha un parametro rappresentato da un indice numerico crescente, mentre all'evento onmouseout non richiamiamo alcun parametro.

Segue adesso il codice Javascript delle funzioni richiamate nel codice HTML:

<script type="text/javascript">
function RollMapOn(i)
{
    var IMG = document.getElementById("immagine");
    IMG.src = "mappa_" + i + ".gif";
}
function RollMapOff()
{
    var IMG = document.getElementById("immagine");
    IMG.src = "mappa.gif";
}
</script>
Il funzionamento è davvero banale: al mouseover costruisco il nome dell'immagine sfruttando il parametro e ne assegno il valore alla proprietà sec dell'oggetto Image, richiamato intrinsecamente attraverso il DOM, mentre al mouseover ripristino, con lo stesso meccanismo, l'immagine originale.

Attenzione: dato che ogni volta che il rollover si verifica (la prima per ogni area della mappa) l'immagine va ricaricata, si consiglia di ottimizzarne le dimensioni in termini di peso, onde non rallentare eccessivamente il caricamento e la visualizzazione della pagina.

Corsi
Corso AJAXCorso AJAX
Applicazioni Web 2.0 basate su AJAX con ASP, ASP.NET e PHP. A partire da 39 €.
Corso CSSCorso CSS
Web Design ed Accessibilità secondo il W3C con CSS ed XHTML. A partire da 29 €.
Corso JavascriptCorso Javascript
Guida completa allo scripting lato client. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122