I want to get the getBBox() for svg path in jquery. i tried like this
$("#"+ path id)[0].getBBox() -> returns x=0,y=0,width=0,height=0
I have added the path to an SVG element. I tried some other element in SVG, for example text node in that case it returns the some bounding box value.
How can I calculate the bounding box for a path in SVG?
<path id="container_svg_John_0" fill="none" stroke-width="3" stroke="url(#container_svg_John0Gradient)" stroke-linecap="butt" stroke-linejoin="round" d="M -2390.2 -125.8888888888889 L 0 0 M 0 0 L 251.60000000000002 -45.77777777777778 M 251.60000000000002 -45.77777777777778 L 503.20000000000005 -11.444444444444445 M 503.20000000000005 -11.444444444444445 L 629 -183.11111111111111 "/>
getBBox is a native SVG method and isn't part of jquery so you would need to write
$("#"+ path id)[0].getBBox()
example
If you're getting a non-zero value for the example and a zero value in your code then there must be something else going on that you've not shown us.
The most likely causes are that the path is a child of <defs>
i.e. you're only using it indirectly in a pattern or clipPath or alternatively the it has a display style of none in which case it wouldn't be rendered so would have no bounding box.
The . Actually It's fixed nowgetBBox()
native implementation in Webkit is buggy, you can find the bug tracker here
A solution is to use an SVG library that has it's own algorithms for calculating such matters, one of them is Raphael.js.
You could make use of Raphael's element.getBBox()
, which does the same thing as the native getBBox()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With