Пример ответа, который был дан здесь , отлично работает с D3 версии 3, но в версии 4/5 .each
был изменен на .on
, и пример больше не работает, даже если изменяется.each
до .on
.Есть ли что-то еще, что нужно учитывать?Вот скрипка и код с D3 версии 4: jsfiddle
var svg = d3.select("body")
.append("svg")
.attr("width", 500)
.attr("height", 500);
// code, code, code, irrelevant code...
function timeForTimeline(){ // har
var timeline = svg.append("line")
.attr("stroke", "steelblue");
repeat();
function repeat() {
timeline.attr({
'x1': 0,
'y1': 130,
'x2': 168,
'y2': 130
})
.transition()
.duration(4000)
.ease("linear")
.attr({
'x1': 0,
'y1': 430,
'x2': 168,
'y2': 430
})
.each("end", repeat);
};
};
timeForTimeline();