Javascript 单击以缩放/平移并居中节点属性?
我目前拥有以下代码:Javascript 单击以缩放/平移并居中节点属性?,javascript,html,d3.js,Javascript,Html,D3.js,我目前拥有以下代码: .on("click", function(d) { if(d.group == 2) { node.filter(function(d) { return d.group == 1; }).style("visibility", "visible") .on("click",function(d){ if(d.gro
.on("click", function(d) {
if(d.group == 2) {
node.filter(function(d) { return d.group == 1; }).style("visibility", "visible")
.on("click",function(d){
if(d.group == 1){
node.filter(function(d) { return d.group == 4; }).style("visibility", "visible")
.on("click",function(d){
if(d.group==4){
node.filter(function(d) { return d.group == 3; }).style("visibility", "visible")
.on("click",function(d){
if(d.group==3){
node.filter(function(d){return d.group == 6;}).style("visibility","visible")
.on("click",function(d){
if(d.group==6){
node.filter(function(d){return d.group ==5;}).style("visibility","visible");
link.filter(function(d){return d.value ==6;}).style("visibility","visible");
texts.filter(function(d){return d.group ==5;}).style("visibility","visible");
}
});
link.filter(function(d) { return d.value == 5; }).style("visibility", "visible");
texts.filter(function(d) { return d.group == 6; }).style("visibility", "visible");
}
});
link.filter(function(d) { return d.value == 4; }).style("visibility", "visible");
texts.filter(function(d) { return d.group == 3; }).style("visibility", "visible");
}
});
link.filter(function(d) { return d.value == 3; }).style("visibility", "visible");
texts.filter(function(d) { return d.group == 4; }).style("visibility", "visible");
}
});
link.filter(function(d) { return d.value == 2; }).style("visibility", "visible");
texts.filter(function(d) { return d.group == 1; }).style("visibility", "visible");
}
我正在尝试使用它,这样当您单击一个节点时,除了我已有的
。在(“单击”)
功能之外,我还希望缩放和居中,或者平移和居中,具体取决于节点。听起来您需要缩放行为,但首先,我要简化您现有的代码。我不知道如何简化它。我认为Lars建议您编写一个自定义函数,通过单击调用它,例如.on(“单击”,someFunction),其中自定义函数包含上述信息。此外,您编写的代码似乎可以打开和关闭组的可视性,而不需要为每个组设置单独的函数。你可以编写一个函数,将组作为变量,进行切换。我仍然很困惑。有什么例子吗?