Incubator-echarts: [讨论] 关于 Legend 等组件的鼠标事件

Created on 5 Jul 2016  ·  13Comments  ·  Source: apache/incubator-echarts

已经有好多同学反馈需要监听 legend 等组件的鼠标事件了。这里建一个 issue,希望相关的都能在这个 issue 下讨论。

对于 legend 等组件的事件我们要加是挺方便的,但是一直有个顾虑是现在版本默认只有图表系列有事件,所以可能很多程序在处理事件的时候只考虑图表系列的事件。比如要添加一个跳转的链接可能直接就是写

myChart.on('click', function (param) {
  window.open(param.data.link);
});

一旦加 legend 等组件也加入了事件,这些事件处理的代码可能都会出问题。

有个方案是像坐标轴(坐标轴有点击事件)一样加一个 silent 配置项。默认 silent: true 时不触发事件,
但是对于 legend 这样的交互组件来说 silent: true 更像是关闭交互。所以可能需要一个更好的参数名。

对于这些不知道大家是否有更好的意见。

new-feature pending stale

Most helpful comment

很需要legend的hover事件

All 13 comments

希望 legend 里面可以添加一个功能,就是可以将几个系列设为一个组显示一个别名,然后点击这个别名,可以显示隐藏这个组里面的所有系列!如:我有150个系列,现在要显示150个legend,界面显示太多且不美观,如果我可以将相似的1-50的系列设为一个组,51-100的系列设为一个组,101-150的系列设为一个组,然后显示只显示组名,这样我只要显示三个legend,界面就会简洁多了,而且便于用户操作!

也稍微看了下源代码
这个属性应该是类似 “自定义action” 的名字。

不是有legendselectchanged吗?

最后支持监听 legend 等组件的鼠标事件了么?

一旦加 legend 等组件也加入了事件,这些事件处理的代码可能都会出问题。

可以为legend 添加特定的事件,比如:legendmouseover 、legendmouseout,独立于原来的mouseover 等事件。
或者支持使用类似jQuery 的语法:

chart.on('mouseover', 'legend', function(){});

现在我们对于legend 的hover 事件还是有需求的,希望能支持~

监听 legend 等组件的鼠标事件,实现legend的拖拽功能,,楼主有什么解决方法吗?想了好久了

求同,这个功能现在支持了么?

很需要legend的hover事件

@pissang 请问现在这个问题有解决方案吗?

现在支持了吗?

现在支持了吗?

0202年了还不支持吗- -

给大家提供一个曲线救国方案...

需求: legend hover时高亮折线图上面的线。
Why: 折线是条拟合线,不需要show Symbol, 而当series比较多的时候,线就看不清了。。折线又没法单独highlight...

image

tooltip: {
  trigger: 'item',
  formatter: function(params) {
    // highlight hover series...
    myChart.setOption({
        series:{
            name:params.name,
            lineStyle:{
                width:8
            }
        }
    })
    // downplay after 800ms..
    setTimeout(()=>{
        myChart.setOption({
        series:{
            name:params.name,
            lineStyle:{
                width:2
            }
        }
    })
    },800)
    return params.name
  },
  show: true
}

最终效果:
hilight

Was this page helpful?
0 / 5 - 0 ratings