Dit is het makkelijkst te maken met behulp van een zogenaamde "image map". Het werkt op de volgende manier:
Eerst voeg je het usemap attribuut toe aan de img tag, dus zo:
<img src="afbeelding.gif" usemap="#mapnaam" />
Daarna maak je het map element aan:
<map name="mapnaam"></map>
Zet dan de gebieden, of zoals jij ze noemt, hotspots, in de inhoud van het map element. Dit doe je met het area element. Om een gebied te maken heb je drie mogelijkheden
- Een rechthoek, dan neem je voor het shape attribuut de waarde
rect. De opbouw van de waarde voor het coords attribuut ziet er dan als volgt uit:
20, 20, 50, 50, waarbij het eerste getal (20 in dit geval) de x-positie van de linker bovenhoek van de rechthoek, het tweede getal (20 in dit geval) de y-positie van de linker bovenhoek van de rechthoek, het derde getal (50 in dit geval) de x-positie van de rechter onderhoek van de rechthoek en het vierde getal (50 in dit geval) de y-positie van de rechter onderhoek van de rechthoek is. De area tag ziet er dan zo uit:
<area shape="rect" coords="20, 20, 50, 50" href="#" />
- Een veelhoek, dan neem je voor het shape attribuut de waarde
poly. Voor het coords attribuut kunnen oneindig veel waarden worden opgegeven, steeds in groepjes van twee. Een voorbeeld van de waarde van het coords attirbuut is de volgende:
20, 20, 30, 40, 10, 50 Hierbij wordt het gebied een veelhoek met drie hoeken met de coördinaten: (20, 20), (30, 40) en (10, 50). Het eerste getal is steeds de x-positie en het tweede getal de y-positie. De area tag ziet er dan zo uit:
<area shape="poly" coords="20, 20, 30, 40, 10, 50" href="#" />
- Een cirkel, dan neem je voor het shape attribuut de waarde
circle. De opbouw van de waarde voor het coords attribuut ziet er dan als volgt uit:
20, 30, 10, waarbij het eerste getal (20 in dit geval) de x-positie van het middelpunt van de cirkel, het tweede getal (30 in dit geval) de y-positie van het middelpunt van de cirkel en het derde getal (10 in dit geval) de straal van de cirkel is. De area tag ziet er dan zo uit:
<area shape="circle" coords="20, 30, 10" href="#" />
De totaalcode zou er dan als volgt uit kunnen zien:
HTML:
<img src="afbeelding.gif" usemap="#mapnaam" />
<map name="mapnaam">
<area shape="circle" coords="20, 30, 10" href="#" />
<area shape="circle" coords="50, 30, 10" href="#" />
<area shape="circle" coords="30, 60, 10" href="#" />
</map>
Je hebt nu 3 gebieden in de vorm van een cirkel en met een straal van 10 pixels die je kunt gebruiken als hotspots. Je moet er nu het onmouseover en het onmouseout attribuut in gaan zetten:
HTML:
<img src="afbeelding.gif" usemap="#mapnaam" />
<map name="mapnaam">
<area shape="circle" coords="20, 30, 10" href="#" onmouseover="showdiscription(1);" onmouseout="hidediscription(1);" />
<area shape="circle" coords="50, 30, 10" href="#" onmouseover="showdiscription(2);" onmouseout="hidediscription(2); />
<area shape="circle" coords="30, 60, 10" href="#" onmouseover="showdiscription(3);" onmouseout="hidediscription(3); />
</map>
Je ziet dat elk gebied een nummer krijgt. Hiermee kun je verschillende beschrijvingen weergeven en verbergen. Nu komt het javascript die de beschrijvingen laat zien en verbergt. Dit script zet je ergens in de inhoud van het head element:
HTML:
<script type="text/javascript">
showdiscription(id){
document.getElementById("discription" + id).style.display = "block";
};
hidediscription(id){
document.getElementById("discription" + id).style.display = "none";
};
</script>
Nu zet je ergens in de pagina de beschrijvingen neer:
HTML:
<div id="discription1" style="display: none;">
Dit is beschrijving nummer 1.
</div>
<div id="discription2" style="display: none;">
Dit is beschrijving nummer 2.
</div>
<div id="discription3" style="display: none;">
Dit is beschrijving nummer 3.
</div>
Als je alles goed hebt gedaan werkt het als het goed is. Succes! :thumb: