Javascript 缩放到D3力定向图上单击的节点
我正在尝试将面包车应用到一个D3力定向图上,我正在工作的图上已经有了功能。但是,我不知道如何获得我当前的职位,以便将其作为转换的起点。对于尝试使用法线变换,我也有同样的问题 我也试着看了一下,但我不确定如何将其应用到力定向图上Javascript 缩放到D3力定向图上单击的节点,javascript,d3.js,zooming,force-layout,Javascript,D3.js,Zooming,Force Layout,我正在尝试将面包车应用到一个D3力定向图上,我正在工作的图上已经有了功能。但是,我不知道如何获得我当前的职位,以便将其作为转换的起点。对于尝试使用法线变换,我也有同样的问题 我也试着看了一下,但我不确定如何将其应用到力定向图上 有几件事我想应用它,包括当我点击链接时能够缩放和跳转到链接的目标节点。有没有办法获取当前屏幕位置,以便我可以将其作为跳转到我想去的地方的起点?实际上,我只是根据中单击的函数计算出来的。我的方程式对于我的刻度和换算数字是错误的。我需要通过这种方式获得我的翻译数字: tran
有几件事我想应用它,包括当我点击链接时能够缩放和跳转到链接的目标节点。有没有办法获取当前屏幕位置,以便我可以将其作为跳转到我想去的地方的起点?实际上,我只是根据中单击的函数计算出来的。我的方程式对于我的刻度和换算数字是错误的。我需要通过这种方式获得我的翻译数字:
translate = [width / 2 - scale * x, height / 2 - scale * y]
然后我需要调用()缩放行为,并对缩放行为本身进行转换,如下所示,最后使用“.event”使其启动:
svg.transition().duration(750)
.call(zoom.translate(translate).scale(scale).event);
并不像我以前那样翻译svg,以正确的方式进行:
svg.transition().duration(750)
.attr("transform", translate(translate).scale(scale));
实际上,我只是根据中单击的函数计算出来的。我的方程式对于我的刻度和换算数字是错误的。我需要通过这种方式获得我的翻译数字:
translate = [width / 2 - scale * x, height / 2 - scale * y]
然后我需要调用()缩放行为,并对缩放行为本身进行转换,如下所示,最后使用“.event”使其启动:
svg.transition().duration(750)
.call(zoom.translate(translate).scale(scale).event);
并不像我以前那样翻译svg,以正确的方式进行:
svg.transition().duration(750)
.attr("transform", translate(translate).scale(scale));
假设您有一个“标准”部队布局,目标节点的位置将是
[d.target.x,d.target.y]
,其中d
是绑定到链接的数据。是的,我使用的是“标准”部队布局。我知道如何获得目标x和y,但为了能够过渡到那里,我不需要知道我的当前位置吗?我如何在地图上获得我的当前位置,以便从该位置跳到目标x和y?您如何转换?如果您只需对元素调用.transition().attr(“transform”,…)
,则无需知道当前位置。谢谢您的评论。我回头看了看我过渡的方式,发现了这一点。请参阅下面的答案。假设您有“标准”部队布局,目标节点的位置将为[d.target.x,d.target.y]
,其中d
是绑定到链接的数据。是的,我使用的是“标准”部队布局。我知道如何获得目标x和y,但为了能够过渡到那里,我不需要知道我的当前位置吗?我如何在地图上获得我的当前位置,以便从该位置跳到目标x和y?您如何转换?如果您只需对元素调用.transition().attr(“transform”,…)
,则无需知道当前位置。谢谢您的评论。我回头看了看我过渡的方式,发现了这一点。见下面我的答案。