Une image avec plusieurs zones réactives (cliquables)

Lorsque l'on créé un thème pour un site ou un blog, il est parfois possible de vouloir obtenir plusieurs liens au sein d'une seule et même image. Ainsi, si vous avez un menu graphique ou une carte avec différentes zones que vous voulez rendre cliquables, ce tutoriel est fait pour vous. On ne va donc pas découper morceau par morceau notre image pour leur donner un lien à chacun, mais utiliser le zonage HTML. Sachez de plus que découper votre image en morceaux augmentera alors le nombre de requêtes HTTP de votre serveur qui devra tous les charger pour les afficher. La conséquence logique : l'augmentation du temps d'affichage de votre site.

Selon moi, la meilleure technique consiste donc à créer une carte de votre image, afin de renseigner des zones à cliquer dedans. Cette technique est régulièrement appelée "Image Réactive" ou "Image Map". Exit donc les effets javascript ; on a à faire qu'à du xHTML.

Le tutoriel

On commence par afficher la fameuse image qui aura plusieurs zones, et on lui donne l'attribut USEMAP servant d'identifiant des futures zones.

<img usemap="#mamap" src="URLdel'image" alt="Texte alternatif" />

Ensuite, on créé notre fameuse MAP avec l'identifiant de l'image. Les zones seront faites avec la balise AREA. On détermine leur forme avec SHAPE qui peut être RECTangulaire, POLYGONale ou CIRCLE (circulaire). Enfin, on donne les coordonnées des zones avec COORDS sur les axes horizontaux (X) et verticaux (Y) <-Arrêtez de regarder ces fesses, voyons ! Le reste est classique, une balise de titre TITLE et de lien HREF pour finir le travail. Vous obtiendrez un exemple de ce genre :

<map name="mamap">
<area shape="rect/circle/polygon" coords="x1,y1,x2,y2,[...]" title="texte au survol de la zone" href="lelien">
<area shape="rect/circle/polygon" coords="x3,y3,x4,y4,[...]" title="texte au survol de la zone 2" href="lelien">
</map>

Explications des formes

La zone RECTangulaire aura deux points par les axes X et Y de départ et X2 et Y2 d'arrivé, ce qui donnera ceci :

<area shape="rect" coords="0,1,120,200">

La zone circulaire consiste à donner le point central et à définir la longueur du rayon (ici 8)

<area shape="circle" coords="25,34,8">

Enfin, vous l'aurez compris, dans le même principe, la zone POLYGONale devra être déterminée par plusieurs points. Le dernier enregistré fermera le polygone avec une ligne droite vers le premier.

<area shape="polygon" coords="0,1,45,70,57,34">

Où et comment trouver ces points ?

Ouvrez votre image avec votre éditeur d'image préféré. Sous Photoshop, par exemple, il faudra activer la fenêtre d'info pour obtenir précisément les coordonnées du point dans l'image où se trouve votre pointeurs.

Un peu plus loin

Il existe aussi une technique en CSS comme celle-ci, qui consiste à créer autant de zones que de classes en définissant leur hauteur et leur largeur. C'est l'idéal lorsqu'il y a beaucoup de zones de la même forme avec les mêmes distances dans l'image. En revanche, lorsqu'elles ne sont pas identiques, ça devient vite le souk dans le code.

Je vous conseille aussi cet autre tutoriel de SelfHTML



Youtube MP3 Podcaster : télécharger la partie audio des podcasts

Internet n'est pas encore totalement démocratisé dans nos voitures. Il en prend le chemin, toutefois, mais ce genre d'option est encore réservée à une certaine élite. Du coup, comment faire pour écouter ses [...]

DIABLO 3 : le Diable s'habille dans un DRM et tout le monde l'aide

À chaque nouvelle sortie d'un jeu qui cartonne, c'est toujours la même rengaine. Les joueurs les plus gueulards sortent de leurs gonds pour dénoncer la présence de ses DRM. Le dernier en date, c'est Diablo 3. Depuis [...]

Pédophilie : Orange appliquera la LOPPSI par un filtrage par DNS

Avec la LOPPSI, en France, l'utilisation des DNS tiers contournant ceux que son FAI propose pourrait bien devenir illégal. En effet, comme le rapporte PCInpact, Orange a déjà pris des mesures, et surtout les [...]

Ajouter des colonnes d'informations dans Nautilus (photos et musiques)

Vous avez beaucoup de photos ou de musiques dans votre ordinateur, et vous utilisez Ubuntu, ou une autre distribution utilisant l'excellent gestionnaire de fichiers Nautilus ? Vous aimerez alors cette extension de [...]

Compléter DuckDuckGo avec l'extension DDGComplete pour Firefox

J'aime beaucoup DuckDuckGo que j'utilise désormais au quotidien. Il évolue dans le bon sens pour les développeurs de sites et de services web. Ce moteur de recherche propose aussi de nombreux goodies, comme vous [...]