完整的小提琴的位置: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
是的,這似乎是正確的。 –