改变部分SVG元素的颜色

时间:2017-08-17 09:49:12

标签: javascript html css d3.js svg

我想使用d3.js timeknots组件,这是一个由linecircle元素组成的svg可视化。我想知道如何应用秒表动画,它会随着时间的推移改变svg可视化的颜色。

我想我可以创建整个可视化的彩色副本,它与原始可视化重叠并随着时间的推移改变彩色副本的剪裁。我不确定这是否是最好的方法,或者有更好的方法来做到这一点。

enter image description here

1 个答案:

答案 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;
&#13;
&#13;