Je crée une carte-image de la carte du monde où le déplacement de la souris sur différentes parties du monde devrait mettre en évidence cette partie du monde. Je le fais en chargeant des images des différentes régions dans un 'div' (initialement) vide et en les positionnant au sommet de la carte du monde avec le positionnement css et absolu. Cela fonctionne bien sauf que les parties transparentes des images que je pose sur la carte du monde dans certains cas couvrent une autre zone qui empêche la souris sur les événements de passer à travers l'image de survol/surlignage à travers la carte image.Propagation d'un événement Javascript avec une carte-image
Y a-t-il un moyen de faire passer les événements à l'image ou est-ce que je devrais adopter une approche complètement différente?
Toute aide sera grandement appréciée.
Voici un code pour montrer ce que je fais. D'abord, vous voyez le code javascript qui remplace le code HTML interne d'un « div » avec le code de la l'image qui doit être chargé de mettre en évidence une région particulière
<script type="text/javascript">
function highlight_map_area(area)
{
switch(area)
{
case 1:
document.getElementById("marker").innerHTML='<img src="/media/img/world_map/canada.png" style="position:absolute; z-index:1; left:53px; top:1px;">'
// ...
break;
// Then all the other case statements ...
}
}
</script>
Voici comment je charger la carte d'image (à l'image de la carte du monde)
<div style="position:relative; float:left; margin:10px;">
<img src=/media/img/world_map/world_map.png width ="699" height ="357" usemap="#world_map">
<div id="marker">
</div>
</div>
Et voici la carte elle-même
<map name="world_map">
<area shape ="rect" coords ="0,0,210,80" onMouseOver="highlight_map_area(1)" alt="Canada" />
<!-- All the other regions to be selectable... -->
<area shape ="rect" coords ="563,240,698,356" onMouseOver="highlight_map_area(8)" alt="Australia and South Pacific" />
</map>
Merci! Cette solution était meilleure que ce que j'avais. J'ai aussi pu faire une grande amélioration en changeant l'ordre des images afin que les petites images ne soient pas couvertes par les grandes. Ce genre de chose est facile à manquer avec des images transparentes. – Simon