完整的小提琴的位置:https://jsfiddle.net/scottbrown0001/o7qL4dpr/为什么在UpdateSelection.transition()工作时,d3.transition()不起作用?
我模仿我在https://bost.ocks.org/mike/constancy/来源看,和我变得有点不同的行为,我不明白的。
麦克博斯托克的源极线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在小提琴的)上的图形按预期方式工作。
我一直在钻研这个例子和文档,并与我的代码玩,我无法弄清楚为什么这种差异。任何人都看到什么
感谢您的链接,您对合并和3.x/4.x的使用做出的解释具有迫切的意义,并且是我昨天在文档中搜索和搜索的确切内容! 我看到了下面的效果(3.0),但当我意识到我需要它时再次找不到它。以下摘要是否正确陈述? - 在d3 3.x中,enter()选项包含update()选择。 - 在d3 4.x中,update()选择和enter()选择是分开的,直到update()选择的合并修改不会影响enter()选择元素。 – Scott
是的,这似乎是正确的。 –