Javascript 使用D3将鼠标悬停在单个图表上时,鼠标悬停在多个图表上
如果理解这个问题有任何困难,请提出建议。因此,我可以编辑问题并提供所需信息 当我在单个图表上悬停时,我想在多个图表上显示线条和工具提示 在下面的图表中,我能够在单个图表上得到线条,我希望线条应该一直延伸到X轴,并且在多个图表上也有高亮显示值的工具提示 下面是我一直工作到现在的一个例子Javascript 使用D3将鼠标悬停在单个图表上时,鼠标悬停在多个图表上,javascript,jquery,d3.js,charts,Javascript,Jquery,D3.js,Charts,如果理解这个问题有任何困难,请提出建议。因此,我可以编辑问题并提供所需信息 当我在单个图表上悬停时,我想在多个图表上显示线条和工具提示 在下面的图表中,我能够在单个图表上得到线条,我希望线条应该一直延伸到X轴,并且在多个图表上也有高亮显示值的工具提示 下面是我一直工作到现在的一个例子 $(窗口)。加载(函数(){ var textareas$=$(“#图表区g”); textareas$.hide(); $('input[name=“Air”]”)。更改(函数(){ var elem$=$(本
$(窗口)。加载(函数(){
var textareas$=$(“#图表区g”);
textareas$.hide();
$('input[name=“Air”]”)。更改(函数(){
var elem$=$(本);
var correspelem$=textareas$.eq(elem$.val()-1);
if(elem$.val()==1){
选择(‘零售’,“#零售”);
}else if(elem$.val()==2){
选择(“气体”、“气体”);
}else if(elem$.val()==3){
选择(“用餐”、“用餐”);
}else{};
如果(elem$.is(':checked'))对应elem$.show();
else correspelm$.hide();
var lastSelectedChartIndex;
var chartAxis=document.queryselectoral('#chartarea.axis.x');
var selectedCharts=document.querySelectorAll(“#选项输入”).forEach((元素,索引)=>{
如果(元素已选中){
lastSelectedChartIndex=索引;
}
});
//console.log(lastSelectedChartIndex)
图表轴
.forEach((elem,index)=>(index!==chartAxis.length-1)和&!(index==lastSelectedChartIndex)?elem.style.display='none':elem.style.display='block')
});
});代码>我更新了你,让你有了工作。我使用了VSCode并重新输入了代码,我希望它对您没有问题。我所做的是:
- 在图表中创建事件调度程序
- 在dispatcher事件上创建回调
- 选择所有行
- 定位
回调如下所示:
chart.onHover(function (x) {
console.log(x);
d3.selectAll('.hover-line')
.select('line')
.attr('x1', x)
.attr('x2', x)
.style('opacity', 1)
})
这是可行的,但我不喜欢每次都被重新选择的事实。调用chart
时,应该可以直接订阅该事件,但我不能对它掉以轻心。请提供如何解决该问题的提示。因此,我可以找出..请使用复选框显示您需要在所有svg上传播事件以实现此目的的图形。您可以在图表上创建一个setLinePosition
方法,该方法将在回调中为其他图表提供值,然后根据收到的值为每个图表设置线条位置。如果您不介意,请提供setLinePosition的代码框架,谢谢!!是否有任何方法可以在鼠标悬停时将这两条线连接起来,并在鼠标悬停时将y值显示为工具提示或标签。