2016-12-31 8 views
1

В приведенном ниже примере я хочу постоянно выделить конкретную ссылку (связь между каждым из узлов) на начальной загрузке:Выделите конкретную ссылку на D3.JS диаграмме Санок

http://bl.ocks.org/d3noob/c2637e28b79fb3bfea13

Как вы можете видеть , он выделит ссылку на наведение мыши.

Это достигается с помощью CSS:

.link:hover { 
    stroke-opacity: .5; 
} 

Как я могу получить тот же результат для конкретной линии связи (например, для связи между первыми двумя узлами), без использования мыши парение (т.е. когда SVG элементы первых добавлено).

ответ

3

Это то, что вам нужно: сначала фильтруйте массив link соответственно.

var firstLink = link.filter(d => d.source.node === 0 && d.target.node === 4); 

В этом случае мы получаем первое звено (в верхней части), который идет от узла 0 (источника) к узлу 4 (цели).

Затем примените непрозрачность:

firstLink.attr("opacity", .5); 

Вот скрипка, показывая его: https://jsfiddle.net/7mm1ko4f/

+0

Совершенных. Можно ли сделать что-то подобное с первым узлом? Я попытался сделать что-то вроде 'var firstNode = node.filter (d => d.source.node === 0); firstNode.attr ("opacity", .5); 'но это не сработало. – Martin

+1

Ничего, разобрался. Пришлось использовать 'd.node'. – Martin

 Смежные вопросы

  • Нет связанных вопросов^_^