GetElementCoords für SVG?
Beat
- svg
Hi.
Ich habe hier aus meinem HTML Framework die folgende Funktion.
Sie ermittelt die Coordinaten eines Elements relativ zum Wurzeldokument.
Ich brauche diese Funktion, um Mouse-Koordinaten relativ zu einem Element berechnen zu können.
Element.prototype.getElementCoords=getElementCoords;
function getElementCoords( el ){
if(el === undefined){ el=this }
alert(el+';'+el.offsetParent);
var coords = { x:0, y:0 };
coords.w = el.offsetWidth;
coords.h = el.offsetHeight;
var i = 0;
do {
coords.x += el.offsetLeft;
coords.y += el.offsetTop;
el = el.offsetParent;
} while(el);
return coords;
}
Nun versagt die bei inline SVG innerhalb XHTML5.
el.offsetParent ist nicht definiert.
1.alert SVG RECTELEMENT; undefined
2.alert SVG RECTELEMENT; undefined
fertig
Das DOM sieht so aus
html
Wie kann ich die Funktion HTML+SVG Kompatibel machen?
mfg Beat
offsetParent ist unbekannt für SVG
Meine Lösung muss in diese Richtung gehen:
http://www.w3.org/TR/SVG/types.html#__svg__SVGLocatable__getCTM
mfg Beat
Hallo,
Allgemein ist die offsetParent-Methode zum Berechnen des Viewport-Offsets eines Elements veraltet. Dafür gibt es getBoundingClientRect. Auch SVG-Elemente haben diese Methode in meinen Tests.
Mathias
Allgemein ist die offsetParent-Methode zum Berechnen des Viewport-Offsets eines Elements veraltet. Dafür gibt es getBoundingClientRect. Auch SVG-Elemente haben diese Methode in meinen Tests.
Danke für den Hinweis. Ich werde das wohl später verarbeiten. (Meine Nerven sind nicht 100% bei der Sache)
mfg Beat