Я использую следующий код для обновления штриха-диаграммы, созданную с d3v4:обновления D3.js с переходом
d3.select("button.add")
.on("click", function(){
dataset.push(Math.floor(Math.random() * 30) + 5);
xScale.domain(d3.range(dataset.length))
.rangeRound([0, w])
.padding(0.2);
yScale.domain([0, d3.max(dataset)]);
var bars = svg.selectAll("rect")
.data(dataset);
bars.enter()
.append("rect")
.attr("class", "bar")
.attr("x", w)
.attr("y", function(d){return yScale(d);})
.attr("width", xScale.bandwidth())
.attr("height", function(d){return h - yScale(d)})
.attr("fill", function(d){
return 'rgb('+d*3 + ',' + d*6 + ',' + d*9 + ')';
});
bars.transition()
.delay(function(d, i){
return(i*1500)/dataset.length;
})
.duration(500)
.ease(d3.easeLinear)
.attr("x", function(d, i){ return xScale(i);})
.attr("y", function(d) {return yScale(d);})
.attr("width", xScale.bandwidth())
.attr("height", function(d) {return h - yScale(d);});
});
Хотя добавлен данные и также создается Rect элементов, переход не происходит для последнего добавленного элемента в массиве. Это происходит только при добавлении следующего элемента и перехода для этого элемента не происходит.
Может ли кто-нибудь указать какие-либо намеки на то, что может пойти не так?
Заранее спасибо ..
Спасибо за указание его !! –