gpt4 book ai didi

javascript - 每个图形节点上的链接动画/转换 - D3.js

转载 作者:行者123 更新时间:2023-11-30 10:33:37 24 4
gpt4 key购买 nike

我希望能够更改我使用 d3.js 创建的图表中每个节点的半径.但是,我想一次更改每个节点的半径,并且我希望能够控制每次更改之间的延迟以及节点的顺序。

现在这是我所拥有的代码:

var nodes = svg.selectAll(".node");
nodes.each(function() {
d3.select(this).
transition().
delay(100).
attr("r", "5")
});

您可以使用此链接中的代码简单地复制它:http://bl.ocks.org/mbostock/4062045 .我上面粘贴的代码只是对上述链接中代码的补充。

当我运行它时,我图形中的所有节点同时转变,即尺寸(半径)同时增长。然而,我希望它们过渡,即一次一个地增加尺寸(半径)。我再说一遍,我希望能够控制:

  1. 每个节点
  2. 的转换之间的 延迟
  3. 经历转换的节点的顺序。

任何指针、教程,甚至其他 stackoverflow 答案都会很棒。理想情况下,我想要一些代码示例。

就在线引用而言,我最接近的是关于 d3.js 转换的教程的这一部分:http://bost.ocks.org/mike/transition/#per-element .但是,它缺少具体的代码示例。作为一般的 d3.js 和 javascript 新手,如果没有具体的代码示例,我无法掌握它。

最佳答案

通过根据每个节点的索引计算延迟,您可以很容易地做到这一点。 Mike Bostock 有这样一个实现的例子 here .这是相关代码:

var transition = svg.transition().duration(750),
delay = function(d, i) { return i * 50; };

transition.selectAll(".bar")
.delay(delay)
.attr("x", function(d) { return x0(d.letter); }); // this would be .attr('r', ... ) in your case

要控制过渡的顺序,您接下来要做的就是对数组进行排序,以便元素的索引反射(reflect)您想要的动画流。要查看如何对数组进行排序,请参阅有关 JavaScript 的文档 array.sort方法,另见 Arrays > Ordering D3 API 引用部分。

关于javascript - 每个图形节点上的链接动画/转换 - D3.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com