正如标题所说:使用D3.js,是否可以转换线性渐变的颜色?
例如,如果我有这个渐变:
var gradient = svg.append("svg:defs")
.append("svg:linearGradient")
.attr("id", "gradient")
.attr("x1", "0%")
.attr("y1", "0%")
.attr("x2", "100%")
.attr("y2", "0%")
.attr("spreadMethod", "pad");
gradient.append("svg:stop")
.attr("offset", "0%")
.attr("stop-color", "yellow")
.attr("stop-opacity", 0.6);
gradient.append("svg:stop")
.attr("offset", "100%")
.attr("stop-color", "red")
.attr("stop-opacity", 0.6);
svg.append("svg:rect")
.attr("width", width)
.attr("height", 8)
.style("fill", "url(#gradient)");
我可以将它转换为从蓝色变为红色而不是黄色到红色的渐变吗?
答案 0 :(得分:6)
是的 - 就D3而言,更改渐变的定义与改变圆圈的位置或类似的东西没有什么不同。您可以使用以下代码执行您想要的操作。
gradient.select("stop")
.transition()
.attr("stop-color", "blue");