Image map
Per image map si intente una mappa cliccabile che consente, all'interno di una singola immagine, di creare differenti aree di ritaglio, ad ognuna delle quali è possibile associare un link differente.
Esistono due tipi di image map:
Questa pagina sostituisce la spiegazione nelle dispense.
Client side image map
Per mappe cliccabili client side si intendono mappe che vengono interpretate senza alcun intervento da parte del server.
Lo sviluppatore inserisce nella propria pagina un'area in cui
vengono definite le sezioni cliccabili della mappa e i link
di riferimento.
Quando l'utente clicca in un punto mappato dell'immagine è
il browser a riconoscere il posizionamento e il link di riferimento.
Per creare le image map è necessario avere:
1. l'immagine
2. la specifica delle sezioni attive e delle azioni ad esse collegate
Trovare le coordinate di un'immagine
Per conoscere le coordinate di un'immagine è sufficiente
caricarla utilizzando la normale sintasi (tag <img>
)
con l'aggiunta dell'attributo ismap
.
<A href="#">
<IMG src="pathname" [...] ISMAP>
</A>
Inserire un image map nel codice HTML
Per inserire invece nel codice un image map client side si utilizza la seguente sintassi:
<IMG SRC="menu.gif" usemap="#menu">
L'attributo usemap
indica la localizzazione delle
istruzioni di mappatura dell'immagine.
Il valore dell'attributo in questo caso è preceduto
dal simbolo # in quanto è un link a una sezione etichettata
del documento (label o ancore).
Il codice che associa ogni area ritagliata dell'immagine a
un link è contenuto all'interno del tag <map>
,
che chiude e apre la sintassi.
Il tag <map>
ha un attibuto name che permette
di dare un nome alla sezione di mappatura (vedi ancore) e
quindi di renderla richiamabile.
Ovviamente il valore dell'atributo usemap di <IMG>
e dell'attributo name di <MAP>
devono coincidere.
L'attributo ismap ha come valore il valore dell'attributo
name di <MAP>
preceduto dal simbolo #,
che indica un riferimento a una sezione etichettata del documento.
<MAP name="menu">
</MAP>
I comandi di mappatura sono introdotti dal tag <area>.
Comandi di mappatura: <AREA>
Si specificano delle aree dell'immagine e ad ogni area si associa la URL corrispondente
shape="rect" | "circle"
| "poly" | "default" |
Indica la forma dell'area ritagliata all'interno
dell'immagine (default indica l'azione associata all'immagine
per le aree non coperte dalla mappatura; corrisponde
a un rettangolo meno le zone giá selezionate
all'interno di quell'area; le coordinate vanno quindi
indicate come per un rettangolo) |
coords="x1,y1,x2,y2" {per i
rect, in alto a sin e in basso a destra} |"x,
y, r" {per i circle, coordinate centro
e raggio} |"x1,y1, x2,y2, x3,y3,
..." {coordinate dei vertici, in ordine} |
Indica le coordinate dell'area selezionata |
href="URL" |
Indica l'URL associata all'area |
nohref |
Per impostare come non attiva una determinata area |
alt | Testo alternativo che descrive la zona mappata |
Scrivere la mappatura
Per scrivere la specifica della mappaturaè necessario quindi:
- Trovare le coordinate delle zone da mappare.
- Scrivere la specifica della mappatura al fondo del documento, alla fine del body, e usare una label per far riferimento alla mappatura.
- Cancellare il codice inserito solo per trovare le coordinate.
Di seguito un esempio di documento con un'image map.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<titleDocumento con un'image map</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<!--
La parte compresa in questo commento è da usare solo per trovare le coordinate
<a href="#"><IMG src="immagine" alt="testoalternativo&"ismap></A>
-->
<img src="pathname" alt="testoalternativo" usemap="#nomemappa">
<map name="nomemappa">
<area shape="circle" coords="15,25,12"
href="http://www.baravalle.it" alt="baravalle.it">
<area shape="rect" coords="15,25,35,45"
href="http://www.baravalle.it" alt="baravalle.it">
<area shape="poly" coords="15,25,35,45,25,68"
href="http://www.baravalle.it" alt="baravalle.it">
<area shape="default" coords="15,25,35,45"
href="http://www.baravalle.it" alt="baravalle.it">
</map>
</body>
</html>
Vedi un esempio.
Server side image map
Per server side image map si intendono immagini cliccabili eseguite dal lato server.
Quando l'utente clicca su un'area dell'immagine le coordinate del punto vengono inviate al server che, analizzando un apposito file .map, rileva il link associato e reindirizza il browser.
Il file .map ha la seguente forma:
shape URL coordinate
Es:
base referer
poly map "Could I have a menu, please?" 0,0 0,10
10,10 10,0
rect .. 0,0 77,27 "the directory of the referer"
circle http://www.inetnebr.com/lincoln/feedback/ 195,0 305,27
rect another_file "in same directory as referer"
306,0 419,27
point http://www.zyzzyva.com/ 100,100
point http://www.tripod.com/ 200,200
rect mailto:nate@tripod.com 100,150 200,0 "Bugs?"
Nel codice HTML locale sarà invece presente un'immagine,
caricata con attributo ismap
, che funge da link
verso il file .map:
<A href="pathname image map (.map)">
<IMG src="pathname" [...] ISMAP>
</A>
Per utilizzare le image map dal lato server è necessario però avere sul server un CGI o un apposito modulo in grado di interpretarle.
Vedi esempio.