Javascript 在这一点上,我对小提琴进行了调整:-nodeSize在此小提琴中处于活动状态,是什么将其移动到svgThanks JSBob之外#3号可以走了。对于第1步,我如何精确地偏移文本来移动中间的文本?我尝试过使用transform/translate,但没有成功

Javascript 在这一点上,我对小提琴进行了调整:-nodeSize在此小提琴中处于活动状态,是什么将其移动到svgThanks JSBob之外#3号可以走了。对于第1步,我如何精确地偏移文本来移动中间的文本?我尝试过使用transform/translate,但没有成功,javascript,d3.js,svg,graph,hierarchy,Javascript,D3.js,Svg,Graph,Hierarchy,在这一点上,我对小提琴进行了调整:-nodeSize在此小提琴中处于活动状态,是什么将其移动到svgThanks JSBob之外#3号可以走了。对于第1步,我如何精确地偏移文本来移动中间的文本?我尝试过使用transform/translate,但没有成功。对于#2,我得到的是文本宽度,但当我在文本之前声明rect时,这需要在代码中的具体位置。那么,在得到文本宽度之后,我是否必须重置rect的宽度,以及我是否必须对enter和translate状态执行此操作?似乎我必须先在selectAll语句


在这一点上,我对小提琴进行了调整:-nodeSize在此小提琴中处于活动状态,是什么将其移动到svgThanks JSBob之外#3号可以走了。对于第1步,我如何精确地偏移文本来移动中间的文本?我尝试过使用transform/translate,但没有成功。对于#2,我得到的是文本宽度,但当我在文本之前声明rect时,这需要在代码中的具体位置。那么,在得到文本宽度之后,我是否必须重置rect的宽度,以及我是否必须对enter和translate状态执行此操作?似乎我必须先在selectAll语句中设置rect的宽度,然后才能访问TEXTWITH变量?您可以使用
.attr(“x”)
来偏移文本。对于#2,我的方法是运行
g.node
元素,对于每个元素,获取
rect
text
元素。然后获取
文本
元素的宽度,并设置
rect
宽度
,以及
文本
x
。是一个链接,有这个。见第200-210行。太好了,谢谢#1和2看起来很棒。我一直在研究#4,还有几个问题,然后我将标记为答案,然后继续…我认为nodeSize是我想要的,但是当我使用你在答案中的代码时,我会遇到语法错误,你是想把return语句和“}”放在那里吗?我在网上看到的大多数示例都是.nodeSize([50,50]),但是当我使用它时,我的节点会从svg上移开吗?我也在努力添加拖放和缩放功能,我认为缩放功能正在发挥作用,但我想我不确定我到底应该在那里寻找什么?对于拖放功能,你能确切地告诉我如何将第111-125行的代码合并到我拥有的东西中吗?我有点困惑。我暂时把它注释掉了。看起来我不需要对“container”代码做任何其他的调整,从我所知道的情况来看?我已经将小提琴更新到目前的状态:-nodeSize在此小提琴中处于活动状态,以及将其移出svg的内容
var height = 900; //changed from 650
nodeEnter.append("text").style("text-anchor", "middle")
svg.selectAll("text").each(function (d){
var textWidth = this.getBBox().width;
});