这可能是常见问题,所以请随时向我指出另一个答案.该主题很难搜索.
如果我想使用d3.js来获取在SVG对象中显式声明的属性,或者我已经使用D3明确地放置了该属性,我可以轻松地获取属性的值d3.select.例如,这打印300:
...
<circle id="mycircle" r="10" cx="100" cy="200">
...
d3.select("#mycircle").attr("cx", 300);
console.log(d3.select("#mycircle").attr("cx"));
Run Code Online (Sandbox Code Playgroud)
如果我没有显式设置属性的值,但它是从<g>组中隐式"设置" 怎么办?或者:我如何使用代码找出<g>组居中的位置?我想要一些方法来确定<svg>对象的绝对坐标系中的内容<g>是什么.如果我知道它在哪里<g>,它是如何在太空中定向的,我可以弄清楚里面的点是什么.我怎样才能做到这一点?
BigBadaboom在评论这个问题的答案时评论说,继承的不是一对坐标,而是一个transform属性.所以我可以选择a <g>并获取transform属性的值:
console.log(d3.select("#mygroup").attr("transform"));
Run Code Online (Sandbox Code Playgroud)
打印,例如:
"旋转(-125.93)翻译(0,-25)"
我是否必须解析它以找出<g>绝对坐标系中的位置?