程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • ECharts

    • ECharts 快速上手
    • ECharts 常用配置项
    • ECharts 常见图表类型
    • ECharts 请求数据
    • ECharts 事件处理
      • 1. 常见事件类型
      • 2. 事件回调参数
      • 3. 事件处理代码示例
        • 3.1 点击事件 (click)
        • 3.2 双击事件 (dblclick)
        • 3.3 鼠标移入事件 (mouseover)
        • 3.4 鼠标移出事件 (mouseout)
        • 3.5 图例选择状态变化事件 (legendselectchanged)
    • ECharts 高级功能
    • Mock 生成随机数据
  • Apache ECharts
  • ECharts
scholar
2024-08-12
目录

ECharts 事件处理

# ECharts 事件处理

ECharts 提供了丰富的事件处理机制,使得开发者可以方便地捕捉和响应用户在图表上的各种操作。常见的事件包括图表点击、双击、鼠标移入、鼠标移出等。通过这些事件,可以增强图表的交互性,提升用户体验。

# 1. 常见事件类型

以下是 ECharts 中一些常见的事件类型及其对应的参数:

事件名称 触发条件 回调参数 说明
click 用户点击图表时触发 params, event, echartsInstance 捕获用户点击的图表元素
dblclick 用户双击图表时触发 params, event, echartsInstance 捕获用户双击的图表元素
mousemove 鼠标移入图表时触发 params, event, echartsInstance 捕获鼠标在图表上移动的事件
mouseover 鼠标移到图表上时触发 params, event, echartsInstance 捕获鼠标移到图表上元素的事件
mouseout 鼠标移出图表时触发 params, event, echartsInstance 捕获鼠标移出图表上元素的事件
legendselectchanged 图例选择状态变化时触发 params, event, echartsInstance 捕获图例的选择状态变化

# 2. 事件回调参数

回调函数的参数一般包含以下内容:

  • params: 对象类型,包含触发事件的详细信息,如数据名、值、数据索引、系列索引等。
  • event: 原生的 DOM 事件对象。
  • echartsInstance: 当前触发事件的 ECharts 实例,可以用来进行进一步的图表操作。

# 3. 事件处理代码示例

# 3.1 点击事件 (click)

import * as echarts from 'echarts';

export default {
  mounted() {
    // 初始化图表实例
    const chart = echarts.init(this.$refs.chart);

    // 配置项
    const option = {
      title: { text: 'ECharts 点击事件示例' },
      tooltip: {},
      xAxis: { data: ['A', 'B', 'C', 'D', 'E'] },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10]
      }]
    };

    // 设置配置项并渲染图表
    chart.setOption(option);

    // 监听点击事件
    chart.on('click', (params) => {
      console.log('点击事件参数:', params); // 打印点击事件的参数
      alert(`你点击了${params.name}, 数值为 ${params.value}`);
    });

    this.chart = chart; // 保存实例,供后续操作使用
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 3.2 双击事件 (dblclick)

import * as echarts from 'echarts';

export default {
  mounted() {
    const chart = echarts.init(this.$refs.chart);

    const option = {
      title: { text: 'ECharts 双击事件示例' },
      tooltip: {},
      xAxis: { data: ['A', 'B', 'C', 'D', 'E'] },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10]
      }]
    };

    chart.setOption(option);

    // 监听双击事件
    chart.on('dblclick', (params) => {
      console.log('双击事件参数:', params); // 打印双击事件的参数
      alert(`你双击了${params.name}, 数值为 ${params.value}`);
    });

    this.chart = chart;
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 3.3 鼠标移入事件 (mouseover)

import * as echarts from 'echarts';

export default {
  mounted() {
    const chart = echarts.init(this.$refs.chart);

    const option = {
      title: { text: 'ECharts 鼠标移入事件示例' },
      tooltip: {},
      xAxis: { data: ['A', 'B', 'C', 'D', 'E'] },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10]
      }]
    };

    chart.setOption(option);

    // 监听鼠标移入事件
    chart.on('mouseover', (params) => {
      console.log('鼠标移入事件参数:', params); // 打印鼠标移入事件的参数
      alert(`你移入了${params.name}, 数值为 ${params.value}`);
    });

    this.chart = chart;
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 3.4 鼠标移出事件 (mouseout)

import * as echarts from 'echarts';

export default {
  mounted() {
    const chart = echarts.init(this.$refs.chart);

    const option = {
      title: { text: 'ECharts 鼠标移出事件示例' },
      tooltip: {},
      xAxis: { data: ['A', 'B', 'C', 'D', 'E'] },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10]
      }]
    };

    chart.setOption(option);

    // 监听鼠标移出事件
    chart.on('mouseout', (params) => {
      console.log('鼠标移出事件参数:', params); // 打印鼠标移出事件的参数
      alert(`你移出了${params.name}, 数值为 ${params.value}`);
    });

    this.chart = chart;
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 3.5 图例选择状态变化事件 (legendselectchanged)

import * as echarts from 'echarts';

export default {
  mounted() {
    const chart = echarts.init(this.$refs.chart);

    const option = {
      title: { text: 'ECharts 图例选择变化事件示例' },
      tooltip: {},
      legend: {
        data: ['销量'] // 图例数据
      },
      xAxis: { data: ['A', 'B', 'C', 'D', 'E'] },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10]
      }]
    };

    chart.setOption(option);

    // 监听图例选择状态变化事件
    chart.on('legendselectchanged', (params) => {
      console.log('图例选择状态变化事件参数:', params); // 打印图例选择变化的参数
      alert(`图例 ${params.name} 的状态已变化`);
    });

    this.chart = chart;
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

总结

  • 事件处理的重要性:ECharts 提供了丰富的事件处理机制,可以有效地提升图表的交互性和用户体验。通过监听各种事件,开发者可以实现更复杂的用户交互逻辑。
  • 参数详解:了解事件回调参数的含义对于正确处理事件非常重要。常见的 params 参数包含了触发事件的详细信息,event 则是原生的 DOM 事件,echartsInstance 提供了操作当前图表实例的入口。
  • 灵活性与实用性:通过灵活的事件处理,开发者可以实现点击、双击、鼠标移入移出、图例状态变化等交互操作,且每种事件都可以根据具体需求进行定制。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
ECharts 请求数据
ECharts 高级功能

← ECharts 请求数据 ECharts 高级功能→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式