svg - 使用 jQuery 获取 SVG 路径的边界框

标签 svg jquery-svg

我想在 jquery 中获取 svg 路径的 getBBox()。我试过这样

$("#"+ path id)[0].getBBox() -> returns x=0,y=0,width=0,height=0

我已将路径添加到 SVG 元素。我在 SVG 中尝试了一些其他元素,例如文本节点在这种情况下它返回一些边界框值。

如何计算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 是原生 SVG 方法,不是 jquery 的一部分,因此您需要编写

$("#"+ path id)[0].getBBox()

example

如果您在示例中得到一个非零值,而在您的代码中得到一个零值,那么一定有其他事情发生,您没有向我们展示。

最可能的原因是该路径是 <defs> 的子级。即您只是在模式或剪辑路径中间接使用它,或者它的显示样式为 none,在这种情况下它不会被渲染,因此不会有边界框。

关于svg - 使用 jQuery 获取 SVG 路径的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377186/

相关文章:

javascript - 如何在 d3 v4 中交叉过滤直方图和散点图矩阵?

javascript - 由于 svg,图表圈未显示在 fiddle 中

pdf - SVG linestroke-dasharray 无法正确打印到 PDF

javascript - 如何使用Jquery高亮svg map ?

javascript - D3 弧形端部人字形

svg - 如何在圆弧路径元素的两端获得箭头?

jquery - SVG 中的图像元素不占据整个矩形 - jquery

javascript - 如何将 SVG 图导出为 pdf

javascript - svg 元素的边框

jquery - 使用 jquery 渐变填充 SVG