我想使用d3.js timeknots组件,这是一个由line和circle元素组成的svg可视化。我想知道如何应用秒表动画,它会随着时间的推移改变svg可视化的颜色。
我想我可以创建整个可视化的彩色副本,它与原始可视化重叠并随着时间的推移改变彩色副本的剪裁。我不确定这是否是最好的方法,或者有更好的方法来做到这一点。
答案 0 :(得分:0)
linearGradient
元素在此用例中运行良好。
<svg class="timeline" width="809" height="150">
<defs>
<linearGradient id="gradient" gradientUnits="userSpaceOnUse" y1="0px" y2="0px" x1="232" x2="233">
<stop stop-color="#1689fb"></stop>
<stop stop-color="rgb(126, 126, 126)"></stop>
</linearGradient>
</defs>
<g stroke="url(#gradient)" class="wrapper-timeline">
<g clip-path="url(#clipLine)" class="wrapper-lines">
<line class="timeline-line" x1="11" x2="798" y1="75" y2="75" style="stroke-width: 2;"></line>
<line class="timeline-line" x1="798" x2="798" y1="75" y2="75" style="stroke-width: 2;"></line>
</g>
<circle class="timeline-event" id="knot-0" r="6" cy="75" cx="11" style="stroke-width: 2; fill: rgba(220, 220, 220, 0.01);"></circle>
<circle class="timeline-event" id="knot-1" r="6" cy="75" cx="798" style="stroke-width: 2; fill: rgba(220, 220, 220, 0.01);"></circle>
</g>
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href=""></use>
<text class="current-time" x="0" y="97" style="font-size: 70%;">00:20:03</text>
<text class="duration" x="770.859375" y="97" style="font-size: 70%;">01:11:24</text>
</svg>
&#13;