D3群集强制布局中的淡化/突出显示

时间:2014-07-12 14:00:24

标签: javascript d3.js highlight force-layout

我正在研究this D3 force layout with clusters example

enter image description here

我想在鼠标悬停节点时仅突出显示当前群集的节点(其他群集应淡入不透明度0.1)。

你的方法是什么?

1 个答案:

答案 0 :(得分:2)

我首先写了这个函数来比较两个节点'簇:

function isSameCluster(a, b) {
     return a.cluster == b.cluster;
};

比,使用上述函数的函数fade():(它意味着为参数的任何值调用"不透明度")

function fade(opacity) {
    return function(d) {
        node.style("stroke-opacity", function(o) {
                thisOpacity = isSameCluster(d, o) ? 1 : opacity;
                this.setAttribute('fill-opacity', thisOpacity);
                return thisOpacity;
            });
    };
};

之后,这是我链接鼠标悬停和函数淡化()的方式:

.on("mouseover", fade(.1))
.on("mouseout", fade(1));

结果是this

enter image description here