Heute habe ich getestet, was passiert, wenn Sie getBoundingClientRect()
auf einem SVG-Element, das gedreht wurde.
Das Ergebnis ist Folgendes:
Chrome, Safari, Opera und IE scheinen die lokale (nicht transformierte) Begrenzungsbox des Elements zu berechnen und geben dann den Client rect für diese Begrenzungsbox zurück . Dies kann dazu führen, dass ein Client größer als angemessen erscheint.
Firefox dagegen schneidet den Client rect ab, um ihn an das Element anzupassen.
Welches Verhalten stimmt mit den Spezifikationen überein?
Für das, was es wert ist, bevorzuge das Verhalten von Firefox , aber (ohne das Verständnis der specs) denke , dass die Abweichung von Firefox ein Fehler sein sollte . >
Nicht-Firefox-Browser scheinen keine brauchbaren Ergebnisse zu liefern und scheinen auch nicht mit den relevanten Spezifikationen übereinzustimmen.
Das CSSOM-Ansichtsmodul delegiert an die SVG-Spezifikation, die sagt, es ist die enge Bounding-Box nach den Transformationen nicht die enge Bounding-Box umgewandelt, so dass ich behaupte, dass ich implementiert es richtig.
Tags und Links javascript svg specifications