【发布时间】:2018-10-06 14:03:26
【问题描述】:
我想为我的绘图上的所有点应用渐变蒙版,但不是为每个点应用。该梯度应该从起点到最大点呈放射状变化。
我的意思的例子如下,我想实现与此完全相似的东西:
我尝试像这样对所有圈子进行分组:
this.svg.append("g").attr('class', 'items-container')
.selectAll('circle')
.data(this.data.suppliers)
.enter()
.append('circle')
.attr(..) //added proper cx,cy,r so got circles in proper point
然后我尝试创建渐变:
var defs = this.svg.append('defs');
var gradient = defs
.append('linearGradient')
.attr('id', 'svgGradient')
.attr('x1', '0%')
.attr('x2', '100%')
.attr('y1', '0%')
.attr('y2', '100%');
gradient
.append('stop')
.attr('class', 'start')
.attr('offset', '0%')
.attr('stop-color', 'red')
.attr('stop-opacity', 1);
gradient
.append('stop')
.attr('class', 'end')
.attr('offset', '100%')
.attr('stop-color', 'blue')
.attr('stop-opacity', 1);
并将其应用于组:
this.svg
.select('.items-container')
.style("fill","url(#svgGradient)")
但它不起作用。你能帮帮我吗?
【问题讨论】:
标签: javascript d3.js svg