d3地图符号和图例框之间的交互
d3 interaction between map symbol and a legend box
我有一个基于不同数据值的带有不同颜色圆圈的地图。该地图带有图例框,每个图例框都有一系列值。我正试图弄清楚如何连接这两者——当点击地图圆圈时,我想突出显示相应的图例框。现在,我的点击函数highlightLegend()看起来是这样的,当我点击一个圆圈时,它会突出显示所有框:
circleColorMap.forEach(function(d, i){
legend.classed("legend-highlight", function(d) {
var colorVal = circleColorMap[i].value;
return colorVal >= id.roll_pm25;
});
});`
这是代码。我知道这与172号线有关,但我不确定如何处理。
您可以完全通过匹配颜色来实现这一点:
//highlight a legend box that corresponds to a clicked map circle
function highlightLegend(id) {
var self = d3.select(this),
rects = d3.selectAll('.symbols>svg>rect');
// clear previous selection
rects.style({'stroke': 'none', 'stroke-width': '1px'});
// loop and hightlight matches
rects.each(function(){
var r = d3.select(this);
if (r.style('fill') === self.style('fill')){
r.style({'stroke': 'red', 'stroke-width': '2px'});
}
});
};
已更新代码。
相关文章:
- 如何捕获jqueryDialog和Parent之间的交互
- 什么's是处理多个js文件之间交互的简单方法,同时避免溢出全局变量
- 为什么在node.js中,c++插件和javascript之间的交互非常昂贵
- 如何在JavaScript中测量交互和mousedown事件之间的延迟
- d3地图符号和图例框之间的交互
- firefoxxul扩展和网页之间的交互
- Dart/Objective-C 和 Dart/Java 之间的交互
- 响应组件之间的交互
- JSON和Javascript数组之间的“交互”(和语法)
- 具有许多控件的窗体,它们之间具有交互.比$scope.$watch更清洁的方法
- flex 和 iframe 之间的交互
- 软件设计 - 两个类之间的交互
- 本机浏览器和Android应用程序之间是否有可能和交互
- jQuery .ready() 和