javascript - d3.js 独立重复转换

标签 javascript d3.js

我希望两个点以不同的速度围绕两个更大的圆移动。它基于 Mike Bostock 的“点长路径插值”。它是通过使用 .attrTween 调用 transition 来实现的。重复是通过循环转换函数来完成的

function circleTransition() {
  circleMove.transition()
    .duration(function(d) {
      return d.rotSpeed * 1000;
    })
    .ease(d3.easeLinear)
    .attrTween("transform", translateAlong(circlePath.node()))
    .on("end", circleTransition);
}

在较快的点完成本轮比赛后,较慢的点跳回起点,显然,本轮比赛再次开始。我怎样才能防止这种情况并使每个点持续留在其轨道上?

我准备了一个JSFiddle:https://jsfiddle.net/FFoDWindow/hbdw525w/5/ 。谢谢。

最佳答案

我自己已经弄清楚了。我更新了我的 fiddle :

https://jsfiddle.net/FFoDWindow/hbdw525w/9/

我必须遍历所有圆圈并为每个 circleMove 对象运行此函数。这是代码中有趣的部分:

circleMove.each(function transition(d){
    d3.select(this).transition()
    .duration(function(d) {
      return d.rotSpeed * 1000;
    })
    .ease(d3.easeLinear)
    .attrTween("transform", translateAlong(circlePath.node()))
    .on("end", transition);
})

关于javascript - d3.js 独立重复转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41150379/

相关文章:

javascript - 根据新数据更改条形图的高度

javascript - 当鼠标悬停在 D3js 中的其中一张 map 上时,如何显示多个 map 的工具提示

javascript - 在 DC.js 中删除条形图的 X 标签

javascript - 内部函数和外部函数是否获得相同变量的自己的副本?

javascript - jQuery NewBie 问题 : What's the deal with $(document).(准备好)?

javascript - 你如何使用 jquery 从内部滚动 iframe?

javascript - 通过 D3 绘制 HTML 表格不会更新现有数据

javascript - 更改无法正常工作的复选框的属性

javascript - YouTube Player API 在 iframe 中隐藏播放按钮、图标和视频标题

javascript - 向 D3 圈子添加标签/文本?