Я пытаюсь добавить эффект в проект для иерархической граничной диаграммы на d3.js
Это основано на той же иерархической диаграмме, что и в mbostock (https://bl.ocks.org/mbostock/7607999).
Я хочу назначить определенные цвета при наведении курсора мыши на ссылку из моего JavaScript на файл JSON. В тот момент, когда вы его запускаете, он автоматически присваивается в таблице стилей
Например:
1010 * JSON *
[
{"name":"brand1","type:1","size":3938,"imports":["activity1"]}, colour assigned #8000ff
{"name":"brand2","type:2","size":3938,"imports":["activity2"]}, colour assigned #80bfff
{"name":"brand3","type:3","size":3938,"imports":["activity3"]} colour assigned #66ffb3
]
В JavaScript
var link = svg.append("g").selectAll(".link"),
node = svg.append("g").selectAll(".node");
link = link
.data(packageImports(root.leaves()))
.enter().append("path")
.each(function(d) { d.source = d[0], d.target = d[d.length - 1]; })
.attr("class", "link")
.attr("d", line);
function mouseovered(d) {
node
.each(function(n) { n.target = n.source = false; });
link
.classed("link--target", function(l) { if (l.target === d) return l.source.source = true; })
.classed("link--source", function(l) { if (l.source === d) return l.target.target = true; })
.filter(function(l) { return l.target === d || l.source === d; })
.raise();
node
.classed("node--target", function(n) { return n.target; })
.classed("node--source", function(n) { return n.source; });
}
Я думал добавить следующую декларацию
var fill = d3.scale.ordinal()
.domain(d3.range(20))
.range(["#eabe1d","#f7a51d","#e9962c","#ee7727","#f05620","#e82d24","#e91d26","#c62038","#ae1858","#1cbec9","#12aab5","#148ca5","#0a7887","#0a638b","#ec1559","#e61b4a","#b31c45","#a01b36","#651a5b"]);
Но оттуда я не знаю, как вызвать его для поиска в JSON атрибута type1, type, type2.
Несмотря на приведенный выше пример JSON, код был взят из mbostock.