【发布时间】:2014-02-18 04:42:12
【问题描述】:
我又有点迷路了,我需要你帮助我在 D3 中的“功能图”。我想通过单击按钮为具有相同给定类“人”的所有节点以及它们的链接着色。
我已设法将节点涂成红色,但链接有问题。
我尝试使用简化版本的渐变功能,我将其用于节点上的鼠标悬停。我首先为按钮创建了点击功能:
$(".btn_person").on("click",function(){
d3.selectAll(".person").select('circle')
.transition()
.duration(500)
.attr("style", "fill:red; stroke:red; stroke-width: 2px;" )
.call(fadeAll(.4,"red"));
});
并创建了如你所见我正在调用的 fadeAll 函数:
function fadeAll(opacity,color) {
return function(d) {
link.style("stroke-opacity", function(o) {
return o.source === d || o.target === d ? 1 : opacity;
})
.style("stroke", function(o) {
return o.source === d || o.target === d ? color : "#000" ;
});
};
}
但它并没有像我预期的那样工作。我没有收到任何错误,但是来自彩色节点的链接不会变成红色,并且所有链接的不透明度都为 0.4,我不知道为什么?我是否以错误的方式调用该函数?
您可以查看我的情况,并在单击以下链接上的“人”按钮时测试问题:http://jsfiddle.net/9rSM6/
有问题的代码位于 JavaScript 代码的末尾。
欢迎任何帮助或建议。
【问题讨论】:
-
你的 jsfiddle 只显示一个按钮,没有别的;这是你想要的方式吗?
标签: javascript css d3.js force-layout