【发布时间】:2013-07-30 15:02:05
【问题描述】:
我有两个 g 元素,每个元素都包含圆圈。圈子使用force.layout 组织。 g 元素正在转换。
您可以在此处查看:demo。精简代码:
var dots = svg.selectAll(".dots")
.data(data_groups)
.enter().append("g")
.attr("class", "dots")
.attr("id", function (d) {
return d.name;
})
...
.each(addCircles);
dots.transition()
.duration(30000)
.ease("linear")
.attr("transform", function (d, i) {
return "translate(" + (150 + i * 100) + ", " + 450 + ")";
});
function addCircles(d) {
d3.select(this).selectAll('circle')
.data(data_circles.filter(function (D) {
return D.name == d.name
}))
.enter()
.append('circle')
.attr("class", "dot")
.attr("id", function (d) {
return d.id;
})
...
.call(forcing);
}
function forcing(E) {
function move_towards(alpha) {
...
}
var force = d3.layout.force()
.nodes(E.data())
.gravity(-0.01)
.charge(-1.9)
.friction(0.9)
.on("tick", function (e) {
...
});
force.start();
}
我需要使用转换将圆圈(例如 id=1)从第一个 g 元素移动到第二个元素。
欢迎提出任何建议。
【问题讨论】:
标签: javascript d3.js transition force-layout