Я создаю серию кругов, и я хотел бы изменить их радиусы конечное число раз.Это код, который первоначально рисует круги:
this.node = this.svg.append('g')
.attr('class', 'nodes')
.selectAll('circle')
.data( self.nodesArray )
.enter().append('circle')
.attr('class', 'node-deals' )
.attr('cx', d => d.x)
.attr('cy', d => d.y )
.attr('r', (d, i) => self.totalDealsArray[i] )
.attr('fill', (d, i) => self.nodeColor[i] );
Все примеры и сообщения, описывающие стекопоток, которые я мог найти о связывании переходов, либо связывают заранее определенное количество переходов, либо выполняют бесконечный цикл.Мне нужно иметь возможность использовать один и тот же код для динамического числа циклов, поэтому я пробовал цикл for:
update() {
self = this;
var t = d3.transition()
.duration(750)
.delay(750);
var nodeAnimation = svg.selectAll('circle.node-deals')
.data(self.dealsArray);
for (let j = 0; j < this.dealsArray.length; j++ ) {
nodeAnimation
.transition(t)
.attr('r', (d) => {
return self.dealsArray[j]} );
}
}
Но переход происходит только один раз.Он не повторяется, как предполагалось.