Stephan: Größe eines SVGs ermitteln

Moin Moin!

Ich habe folgendes Problemchen:
In einer eingebetteten SVG-Grafik (über embed) blende ich bei einigen Elementen ein ToolTip ein, wenn man mit der Maus über das Element fährt. Die Koordinaten des Tooltips muss ich immer neu errechnen, da ich per ViewBox ein anderes internes Koordinatensystem verwende (ist auch unumgänglich).
Das funktioniert soweit auch wunderbar, leider verschiebt sich das ganze natürlich, wenn ich das Browserfenster verkleinere und die SVG-Grafik somit ebenfalls "schrumpft". Per window.screenLeft und window.screenTop hole ich mir schonmal die Pixel zum linken oberen Bildschirmende, doch nun muss ich noch einbeziehen, dass sich die SVG-Grafik verkleinert.

Kann ich mir über irgendeine Funktion od.ä. die Größe (width und height) der SVG-Grafk ausgeben lassen?

Wenn das Browserfenster maximiert ist, dann nehme ich einfach die Bildschirmauflösung minus einen gewissen Bereich (klappt prima!), aber wenn das Fenster verkleiner wird, dann kann die SVG-Grafik ja beliebige Größen annehmen. Vielleicht hat ja jemand ne Ahnung, konnte leider keine entsprechende Hilf im Internet finden.

mfg Stephan

  1. Hallo Stephan,

    In einer eingebetteten SVG-Grafik (über embed) blende ich bei einigen Elementen ein ToolTip ein, wenn man mit der Maus über das Element fährt. Die Koordinaten des Tooltips muss ich immer neu errechnen, da ich per ViewBox ein anderes internes Koordinatensystem verwende (ist auch unumgänglich).

    Du kannst eine beliebige viewBox-Belegung wählen, z. B. "0 0 800 600" und dann bei width und height jeweils 100% angeben. Somit skaliert die Grafik bei jeder Auflösung.

    Kann ich mir über irgendeine Funktion od.ä. die Größe (width und height) der SVG-Grafk ausgeben lassen?

    Frage den Attributwert width ab oder gehe über die Methode getBBox(), welche am jeweiligen Elementobjekt ein Ergebnisobjekt mit den Eigenschaften x, y, width und height liefert.

    Grüße,
    Thomas