当前位置: 首页 > 知识库问答 >
问题:

echarts5.0 - 2. 在图表点击事件后,如何使图形保持高亮状态?

戎元忠
2023-11-22

图表点击事件调用dispatchAction使图形高亮后,怎么保持鼠标移动后,图形依旧保持高亮

鼠标移动后,图形依旧保持高亮

共有3个答案

宗政唯
2023-11-22

可以在点击事件里面重新设置echarts相关配置,然后重新初始化。
还可以根据官方提供的方法来解决。

楚岳
2023-11-22

看你的高亮是如何设置的,之前有个类似的问题
https://segmentfault.com/q/1010000043396245?utm_source=sf-similar-question

江浩慨
2023-11-22

要保持鼠标移动后图形依旧保持高亮,您需要使用 JavaScript 来处理鼠标移动事件并更新图形的样式。

以下是一个示例代码,演示了如何使用 D3.js 库来处理图表点击事件并保持鼠标移动后图形高亮的状态:

// 假设您已经有一个绘制图形的函数 drawGraph// 在您的 HTML 文件中,添加以下 JavaScript 代码:// 获取要高亮的图形元素const highlightElement = document.querySelector('#highlight');// 定义鼠标移动事件处理程序function onMouseMove(event) {  // 获取鼠标当前位置的坐标  const x = event.clientX;  const y = event.clientY;  // 将鼠标位置映射到图形坐标系中  const xScale = d3.scaleLinear()    .domain([0, window.innerWidth]) // 输入范围为窗口宽度,输出范围为图形宽度    .range([0, 500]); // 输出范围为图形宽度,可根据实际情况调整  const yScale = d3.scaleLinear()    .domain([0, window.innerHeight]) // 输入范围为窗口高度,输出范围为图形高度    .range([500, 0]); // 输出范围为图形高度,可根据实际情况调整  // 计算映射后的坐标值  const mappedX = xScale(x);  const mappedY = yScale(y);  // 根据映射后的坐标值更新图形元素的样式,使其保持高亮状态  highlightElement.style.fill = 'yellow'; // 可根据实际情况调整图形元素的样式,如填充颜色、边框等}// 绑定鼠标移动事件处理程序到图形元素上highlightElement.addEventListener('mousemove', onMouseMove);

在上面的示例代码中,我们首先通过 document.querySelector 获取要高亮的图形元素,并定义了一个名为 onMouseMove 的函数来处理鼠标移动事件。在事件处理程序中,我们首先获取鼠标当前位置的坐标,然后使用 D3.js 的比例尺函数将鼠标位置映射到图形坐标系中。接下来,我们根据映射后的坐标值更新图形元素的样式,使其保持高亮状态。最后,我们使用 addEventListener 方法将事件处理程序绑定到图形元素上。

 类似资料:
  • 我刚刚开始使用Chart.js,我很快就变得非常沮丧。我有我的堆叠条形图工作,但是我不能让点击“事件”工作。 我在图表中找到了对GitHub的评论。js声明使用函数<code>getBarsAtEvent 我在画布元素上设置了一个事件监听器(正确的方式): ...然而在我的< code>handleClick函数中,< code > chart . getbarsatevent 是未定义的! 现在

  • 现在有的配置: 默认情况下,数据的symbol不显示: 鼠标在图表上,显示当前数据的symbol: 效果如下图: 我想要实现的功能: 当图例hover时,显示当前折线的所有数据的symbol,想要实现的效果如下图: 请问该如何实现呢?

  • 给饼图添加点击事件,点击对应区块放大,再次点击正常,这种交互如何实现呢?

  • 我正在使用MPAndroidChart库来实现,如何实现中每个条的点击侦听器。我想在Toast中显示点击的值。如何实现这个?

  • 我在某个地方读到,我们可以添加另一个带有突出显示点的数据集,并增加其圆圈大小。如果我的荧光笔会来回拖动,并且我必须频繁地更新新的数据集,那么这真的是一个好方法吗?

  • 在页面上有两个框 这两个框是一个数组的数据类似与 [ 这种格式的我去循环然后画的框 想要实现无论点击这两行哪行 这两行都高亮显示 用过根据id查找页面元素,但id只能返回第一个所以只能第一个高亮