Опитвам се да създам времева линия, използвайки D3.js v4. Успешно създадох моята точкова диаграма с нейната ос и четка, за да позволя на потребителите да дефинират конкретен период от време.
Искам да позволя на потребителите да могат да „възпроизвеждат“ времевата линия точно като аудио/видео плейър с индикатор, който ще се движи отляво надясно, като използва персонализирана продължителност. За да постигна това, поставих вертикална линия с преход, която да действа като индикатор.
Проблемът ми е, че не мога да извлека координатите на оста x, докато преходът се изпълнява. Искам да постигна това, защото стойностите на оста x трябва да взаимодействат с друга част от кода.
Опитах всичко, включително да си играя с функциите tween и attrTween, но не можах да го накарам да работи. В идеалния случай бих искал индикаторът да започва и спира в границите на четката.
svg.append("g")
.attr("class", "brush")
.call(brush)
.call(brush.move, x.range());
svg.append('line')
.attr("class", "timeline-indicator")
.attr("stroke-width", 2)
.attr("stroke", "black")
.attr("x1", 0)
.attr("y1", 0)
.attr("x2", 0)
.attr("y2", height)
.transition()
.duration(9000)
.attr("x1", 500)
.attr("y1", 0)
.attr("x2", 500)
.attr("y2", height);