Ho bisogno di conoscere esattamente la larghezza e l'altezza di un g
elemento arbitrario nel mio SVG
perché ho bisogno di disegnare un indicatore di selezione attorno ad esso una volta che l'utente ha cliccato su di esso.
Quello che ho visto in internet è qualcosa di simile: d3.select("myG").style("width")
. Il problema è che l'elemento non avrà sempre un attributo di larghezza esplicito impostato. Ad esempio, quando creo un cerchio all'interno di g
, avrà il radious ( r
) impostato al posto della larghezza. Anche se utilizzo il window.getComputedStyle
metodo su a circle
, restituirà "auto".
C'è un modo per calcolare la larghezza di una selezione arbitraria svg
in D3
?
Grazie.
getBoundingClientRect()
invece di SVG-onlygetBBox()
. In questo modo:d3.select("body").node().getBoundingClientRect().width