Javascript D3JS闪烁链接

Javascript D3JS闪烁链接,javascript,d3.js,hyperlink,tree,nodes,Javascript,D3.js,Hyperlink,Tree,Nodes,我使用的是d3js可折叠树。 如何使链接闪烁闪烁?是否可以使节点以固定间隔显示/隐藏?我希望不使用setInterval就可以完成 提前感谢使链接闪烁,您将需要使用转换。老实说,setInterval没有什么问题,事实上,我可能会轻松地使用它 首先,你想要动画。很难理解你所说的眨眼是什么意思,所以我现在假设眨眼会变得更亮,但你可以随意改变它 d3.select("svg") .selectAll(".link") .transition() .duration(500) // mi

我使用的是d3js可折叠树。

如何使链接闪烁闪烁?是否可以使节点以固定间隔显示/隐藏?我希望不使用setInterval就可以完成


提前感谢

使链接闪烁,您将需要使用转换。老实说,setInterval没有什么问题,事实上,我可能会轻松地使用它

首先,你想要动画。很难理解你所说的眨眼是什么意思,所以我现在假设眨眼会变得更亮,但你可以随意改变它

d3.select("svg")
  .selectAll(".link")
  .transition()
  .duration(500) // miliseconds
  .style("stroke", "white"); 
这将在500毫秒内逐渐将样式更改为白色。现在需要将颜色恢复为原始颜色。可以使用transition对象上的end事件执行此操作

.on("end", function() {
   d3.select(this).style("stroke", "#CCC");
});
请注意,在上面的示例中,这是运行转换的HTMLElement。如果需要的话,您可以使用lambda arrow函数来实现这一点,但是您需要执行d,i,elements=>d3.selectelements[i]

现在你有了你的过渡,它会重置。但你要定期打电话。老实说,最简单的方法是使用setInterval。。。因此,您的最终代码如下所示:

// Create the regular interval
setInterval(() => {
    d3.select("svg")
      .selectAll(".link")
      .transition()
      .duration(500) // miliseconds
      .style("stroke", "white")
      .on("end", function() {
          d3.select(this).style("stroke", "#CCC");
      });

}, 1000);

感谢您的详细回复,如何选择特定的链接,比如id=1?如果您的链接是I'd,请使用选择器link1。我必须以一个字母开始..on给出了错误,所以我使用了.每个都有效。唯一的问题是所有节点都从它们的位置移动,所以链接和节点看起来是浮动的separately@yogi节点的位置不应该与此答案相关-这应该是纯粹的样式。另外,on应该可以很好地工作-在文档中有一个指向它的链接