事件有两种类型,一种是 用户鼠标操作事件 ,通过 on 方法,如 跳转地址,弹出对话框或者数据下钻等。
另一种是 组件交互的行为事件 ,即 调用 dispatchAction 后触发的事件,如在切换图例时出发的‘legendeselectchanged’ 事件,数据区域缩放时触发‘datazoom’事件。
1、鼠标操作事件:
click 、dbclick 、mousedown 、mousemove 、mouseover 、mouseup 、mouseout。
示例:
mychart.on('click',function(params){
window.open('url'+encodeURIComponent(params.name));
})
下面是监听一个图例开关的示例:
// 图例开关的行为只会触发 legendselectchanged 事件
myChart.on('legendselectchanged', function (params) {
// 获取点击图例的选中状态
var isSelected = params.selected[params.name];
// 在控制台中打印
console.log((isSelected ? '选中了' : '取消选中了') + '图例' + params.name);
// 打印所有图例的状态
console.log(params.selected);
});
你可以在回调函数中获得这个对象中的数据名、系列名称后在自己的数据仓库中索引得到其它的信息候更新图表,显示浮层等。
2、组件交互的行为事件:
myChart.dispatchAction({ type: '' "}) 触发图表行为。
myChart.dispatchAction({
type: 'dataZoom',
start: 20,
end: 30
});
// 可以通过 batch 参数批量分发多个 action
myChart.dispatchAction({
type: 'dataZoom',
batch: [{
// 第一个 dataZoom 组件
start: 20,
end: 30
}, {
// 第二个 dataZoom 组件
dataZoomIndex: 1,
start: 10,
end: 20
}]
})
如:加入下拉框:当下拉框改变的时候触发legend的事件
<!-- 下拉列表 -->
<select id="sel_search_orderstatus" style="width:150px" multiple="multiple">
<option value="0">2017年</option>
<option value="5">2016年</option>
</select>
/* legend 下拉列表多选*/
$('#sel_search_orderstatus').multiselect({
onChange: function (option, checked, select) {
var name = $(option).text();
console.log("option",option);
console.log("checked",checked);
console.log("select",select);myChart.dispatchAction({
type: 'legendToggleSelect',
name: name
});
}
});
3、在图表中加入交互组件
https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%9B%BE%E8%A1%A8%E4%B8%AD%E5%8A%A0%E5%85%A5%E4%BA%A4%E4%BA%92%E7%BB%84%E4%BB%B6
图例组件 legend、
标题组件 title、
视觉映射组件 visualMap、
数据区域缩放组件 dataZoom、
时间线组件 timeline
我的其他博文:
《前端》echarts 图例很多时如何放进下拉菜单(实现选择性显示图表数据)--2020年7月16 https://mp.csdn.net/console/editor/html/107375094