我正在使用 Mike Bostock 的 Rainbow Worm 作为我元素的一部分。 https://bl.ocks.org/mbostock/4165404
我正在尝试更改蠕虫的颜色,因为它将代表元素中的风速。着色由这个函数描述:
var path = svg.selectAll("path")
.data(quad(points))
.enter().append("path")
.style("fill", function(d) { return d3.hsl(z(d[1].value), 1, .5); })
.style("stroke", "#000");
如果我用“颜色”替换函数(d),蠕虫将是单色的。 我怎样才能让蠕虫的部分颜色为红色->白色->红色->白色->红色->白色等等?
最佳答案
使用索引(第二个参数)和一个remainder operator :
.style("fill", function(d,i) { return i%2 ? "red" : "white" })
这就是这段代码的作用:
第二个参数,此处名为 i
,是每个数据的索引,从 0 到 data.length - 1
。
然后,使用余数运算符...
i % 2
...我们将得到一系列的零和一:
010101010101010101...
在 JavaScript(以及我所知道的所有语言)中,0 是假的,三元运算符将交替返回“白色”和“红色”。
这里是 bl.ocks:http://bl.ocks.org/anonymous/fd5c1e6644d742e43c737ff4a17f96ff
关于javascript - 改变彩虹蠕虫的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280448/