echarts学习之legend点击事件解读
作者:King_960725 发布时间:2024-05-03 11:10:17
标签:echarts,legend,点击事件
echarts legend点击事件
首先,明确本篇文章的重点,主要有三个:
1. 给legend添加点击事件
2. 禁用legend点击事件的默认行为(类型checkbox多选框)
3. 解决点击事件重复触发问题
问题一
let myCharts = Echarts.init(document.getElementById('bar'))
let x = []
let y1 = []
let y2 = []
let idList = []
val.forEach(e => {
x.push(e.name)
y1.push(e.invitationNum)
y2.push(e.totalMoney / 100)
idList.push(e.id)
}) // 这些都是自己做的一些数据处理,可以忽略
let option = {
title: {
text: name + '前十用户',
left: 'center'
},
...其他代码
}
myCharts.on('legendselectchanged', (e) => {
alert('点击了') // 如果不加off事件,就会叠加触发
})
myCharts.setOption(option)
问题二
myChart.on('legendselectchanged', function (params) {
myChart.setOption({
legend:{selected:{[params.name]: true}}
})
console.log('点击了', params.name);
// do something
});
问题三
let myCharts = Echarts.init(document.getElementById('bar'))
myCharts.off('legendselectchanged') //解决重复触发
...
...
myCharts.on('legendselectchanged', (e) => {
alert('点击了') // 如果不加off事件,就会叠加触发
})
myCharts.setOption(option)
Echarts自己控制legend点击事件
先看需求
现在想实现的 情况是
一进去页面,所有的 Echarts 中 legend 的所有选项都是默认选中的状态(这是 Echarts 默认的)
然后当“9”号标识,也就是“一#斗”点亮时,与之相对应的“1、2、3”仓位,即“石灰石、污泥球、生白”也必须点亮,
然后 “9”号点亮之后 “1、2、3”号仓位也可以自己控制自己的 点亮还是关闭,
然后当“9”号再次从关闭变成点亮的状态时,“1、2、3” 会再次点亮。
var dou1_legend_flag = false;
myChart.on('legendselectchanged', function (params) {
var option = this.getOption();
//当前echarts图例选项
var select_key = Object.keys(params.selected);
//当前图例的选项是否选中 选中为true 未选中为false
var select_value = Object.values(params.selected);
if (option.legend[0].selected.hasOwnProperty("1#斗")) {
if (option.legend[0].selected["1#斗"] == true) {
if (!dou1_legend_flag) {
// 控制legend 的显示和隐藏 直接控制 selected 中对应名称的真假值就可以
option.legend[0].selected[option.legend[0].data[0]] = true;
option.legend[0].selected[option.legend[0].data[1]] = true;
option.legend[0].selected[option.legend[0].data[2]] = true;
myChart.setOption(option);
dou1_legend_flag = true;
}
} else {
dou1_legend_flag = false;
}
}
});
来源:https://blog.csdn.net/weixin_42566993/article/details/108683076
0
投稿
猜你喜欢
- 文 | 李晓飞来源:Python 技术「ID: pythonall」最近有了一个新任务,需要将赛事视频,拆分成两分钟以内的小段,用
- 前言需要注意,对实例化的文本组件的insert、delete等操作的index**都是浮点型而不是整型**,(1.0,2.0)表示的是对第一
- ElementUI是饿了么推出的一套基于vue2.x的一个ui框架。官方文档也很详细,这里做一个element-ui日期插件的补充。官方文档
- 我们可用ADO STREAM来做一个无组件的上传程序。Stream对象包含了许多操作二进制和文本文件的方法,我们现在用Stream对象来操作
- 配合上一篇文章的联系人应用(https://www.aspxhome.com/article/161160.htm),实现配套的基于node
- 因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能(尽管TIM有定时功能),也可定时给好友、群
- 在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限。对于这个迁移我们可以从mysql.user表来获取用户的相关权限
- TensorFlow提供了一种统一的格式来存储数据,就是TFRecord,它可以统一不同的原始数据格式,并且更加有效地管理不同的属性。TFR
- 一、概念 1. 数据库 (Database)什么是数据库?数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下
- 如何用ASP发送带附件的邮件?请问如何用CDONTS组件发送带附件的邮件? 见下列代码:<%&nb
- 一、JDBC概述JDBC全称Java Database Connectivity,它是一个独立于特定数据库管理系统、通用的SQL数据库存取和
- 一、前言好不容易女神喊我去看电影,但是她又不知道看啥,那么我当然得准备准备~二、前期准备1、使用的软件python 3.8 开源 免费的 (
- 前言和Word、Excel承载数据的能力相比,PPT的应用重点在于表演。比如一场发布会、一场演说、一次产品展示、一次客户沟通&hel
- 本来而言,这个问题网上很多资料,但是网上资料都是复制来复制去,很多话大家其实都不是很明白的,或者拿着官方文档翻译过来的,让人看的非常迷糊。今
- 众所周知tensorflow造势虽大却很难用,因此推荐使用Keras,它缺省是基于tensorflow的,但通过修改keras.json也可
- 创建Dataframe主要是使用pandas中的DataFrame函数,其核心就是第一个参数:data,传入原始数据,因此我们可以据此给出六
- 一、自定义MyComboBox# MyComboBox.pyfrom PyQt5.QtWidgets import QComboBoxfro
- 基本环境配置python 3.6pycharmrequestscsvtime相关模块pip安装即可目标网页分析网页一切的一切都在图里找到数据
- python中判断文件结束符的方法:可以使用try except语句块来进行判断。具体使用方法:【try:while True:s = in
- 看了不少js继承的东西也该总结总结了。先说一下大概的理解,有不对的还望指正,也好更正一下三观。另外说明下,下面的例子并非原创基本就是改了个变