【发布时间】:2016-11-09 21:59:30
【问题描述】:
在这里完成小提琴:https://jsfiddle.net/scottbrown0001/o7qL4dpr/
我正在模仿我在https://bost.ocks.org/mike/constancy/ 的源代码中看到的内容,但我得到了一些我不理解的不同行为。
Mike Bostock 的源代码行 142 &ff 和 171 &ff 有
var bar = svg.selectAll(".bar")
.data(top, function(d) { return d.State; });
// ...snippage...
var barUpdate = d3.transition(bar)
.attr("transform", function(d) { return "translate(0," + (d.y0 = y(d.State)) + ")"; })
.style("fill-opacity", 1);
而我对应的第 44 &ff 和 78 &ff 行有
var circGraphic = playground.selectAll(".circ-g")
.data(CIRCLES, function(d) {
return d.name;
});
// ...snippage...
var circUpdate = d3.transition(circGraphic)
.attr("transform", function(d, i) {
console.log("UPDATING to " + circ_y(circIndex(step + i)));
return "translate(" + circ_x(i) + "," + circ_y(circIndex(step + i)) + ")";
});
考虑到bar 和circGraphic 的定义方式,肯定看起来是平行的。但就我而言,图形没有明显变化。
如果我更改第 78 行,以便我有
circGraphic.transition()
.attr("transform", function(d, i) {
console.log("UPDATING to " + circ_y(circIndex(step + i)));
return "translate(" + circ_x(i) + "," + circ_y(circIndex(step + i)) + ")";
});
(将注释从小提琴中的第 77 行和第 78 行切换出来)图形按预期工作。
我一直在仔细研究示例和文档并使用我的代码,但我无法弄清楚为什么会出现这种差异。有人看到了吗?
【问题讨论】:
标签: d3.js transition