Hallo Udo,
um an die Klick-Koordinaten zu kommen, kann man einen Image-Button (<input type="image">) oder ein <area>-Element verwenden. Wiki: Auslösen von Benutzeraktionen - input type="image"
Aber Vorsicht: Ein eigenständiges input mit type="image" oder eine area sind etwas, was man nicht tun sollte. Du kannst mit den Koordinaten nur dann etwas anfangen, wenn das Element eine feste Größe hat. Und das möchte dein Besucher nicht, deine Besucher möchten mit großer Wahrscheinlichkeit eine Seite, die sich an die Größe ihres Bildschirms anpasst, also responsiv ist.
Und: Koordinaten sind nicht immer das, was Du eigentlich willst. Wenn Du in einem Bild darauf reagieren willst, dass ein bestimmter Bildbereich geklickt wird, ist eine responsive Imagemap, wie Matthias sie im Wiki dargestellt hat, eleganter.
Allerdings hat Matthias hat sein Beispiel auf a Elemente aufgebaut. Für einen Form-Submit ist das ungünstig, Buttons sind besser, wenn auch etwas mühsamer, weil man sie als foreignObject verpacken muss. Du hast zwei Möglichkeiten: Zeige im SVG ein Bild und lege foreignObjects mit Buttons darin darüber. Den Buttons nimmst Du mit CSS Rand und Hintergrund weg. Oder zeige in einem leeren SVG foreignObjects mit Image-Buttons darin an.
Dem SVG kannst Du dann eine beliebige Größe geben, die Klick-Koordinaten bekommst Du im Koordinatensystem der Viewbox des SVG.
Oder, wenn Du auf ein Bild mehrere Buttons an geeignete Stellen legst, kannst Du ihnen name- und value-Attribut geben und einfach an Hand des Submit-Buttons unterscheiden, wohin geklickt wurde. Koordinaten sind nicht unbedingt nötig.
Beispielsweise kannst Du, wenn dein Bild ein Seitenverhältnis 2:3 hat, dies tun:
<form ...>
Inhalte
<svg class="imageButton" viewBox="0 0 200 300">
<foreignObject>
<input type="image" name="..." src="..." alt="..." />
</foreignObject>
</svg>
</form>
Im CSS brauchst Du noch
.imageButton {
width: 5em;
}
.imageButton :is(foreignObject, input[type=image]) {
width: 100%; height: 100%;
}
Damit ist der Image-Button so groß wie die Viewbox des SVG-Elements (Wert 3 und 4 des viewBox-Attributs). Hier musst Du leider hinnehmen, dass die gewünschte Bildgröße als magische Zahl in der Viewbox auftaucht. Bei mehreren Image-Buttons müsstest Du den foreignObject Elementen passende Größen zuweisen.
Je nach method im Form und je nachdem, ob das input type="image" Element ein name-Attribut hat, bekommst Du die Koordinaten auf unterschiedliche Weise.
method="GET" - als GET Parameter in der URL
method="POST" - als POST-Parameter im Post-Inhalt
ohne Name - Parameternamen sind x und y
mit Name - Parameternamen sind name.x und name.y
Rolf
--
sumpsi - posui - obstruxi