事件(Event)
上一篇
classicDark
下一篇
颜色映射(Color)
Loading...
G2 对外暴露了一些事件,用于获取图表的生命周期,以及交互信息。G2 导出了一个 ChartEvent
类型,用于定义事件的类型。
import { Chart, ChartEvent } from '@antv/g2';const chart = new Chart({container,canvas,});chart.data([{ genre: 'Sports', sold: 275 },{ genre: 'Strategy', sold: 115 },{ genre: 'Action', sold: 120 },{ genre: 'Shooter', sold: 350 },{ genre: 'Other', sold: 150 },]);chart.interval().encode('x', 'genre').encode('y', 'sold').encode('color', 'genre').axis({ x: { animate: false }, y: { animate: false } });chart.on('interval:click', (e) => {console.log(e.data.data); // 展示点击的数据});chart.on('element:click', (e) => {console.log(e.data.data); // 展示点击的数据});chart.render();
如果想要获取图表的生命周期信息,可以通过下面的方式:
chart.on(ChartEvent.AFTER_RENDER, (ev) => {console.log(ev);});
G2 目前提供了以下生命周期事件:
事件名 | 说明 |
---|---|
ChartEvent. BEFORE_RENDER | 渲染前 |
ChartEvent. BEFORE_PAINT | 绘制前 |
ChartEvent. AFTER_PAINT | 绘制后 |
ChartEvent. AFTER_RENDER | 渲染后 |
ChartEvent. BEFORE_CHANGE_DATA | 更改数据前 |
ChartEvent. AFTER_CHANGE_DATA | 更改数据后 |
ChartEvent. BEFORE_CLEAR | 清理画布前 |
ChartEvent. AFTER_CLEAR | 清理画布后 |
ChartEvent. BEFORE_DESTROY | 销毁画布前 |
ChartEvent. AFTER_DESTROY | 销毁画布后 |
ChartEvent. BEFORE_CHANGE_SIZE | 更改画布尺寸前 |
ChartEvent. AFTER_CHANGE_SIZE | 更改画布尺寸后 |
如果你想要获取图表的交互信息,可以通过下面的方式:
element
事件chart.on(`element:${ChartEvent.EventType}`, (ev) => {console.log(ev);});
element
事件chart.on(`${markType}:${ChartEvent.EventType}`, (ev) => {console.log(ev);});// 如,监听柱状图中的柱子的点击事件chart.on(`interval:${ChartEvent.CLICK}`, (ev) => {console.log(ev);});
chart.on('plot:click', (event) => console.log(event));
chart.on('component:click', (event) => console.log(event));
chart.on('label:click', (event) => console.log(event));
事件名 | 说明 | 回调参数 |
---|---|---|
ChartEvent. CLICK | 点击 | Event |
ChartEvent. DBLCLICK | 双击 | Event |
事件名 | 说明 | 回调参数 |
---|---|---|
ChartEvent. POINTER_TAP | Event | |
ChartEvent. POINTER_DOWN | 当指针按下时 | Event |
ChartEvent. POINTER_UP | 当指针松开时 | Event |
ChartEvent. POINTER_OVER | 当指针进入目标元素时 | Event |
ChartEvent. POINTER_OUT | 当指针离开目标元素时 | Event |
ChartEvent. POINTER_MOVE | 当指针改变坐标时 | Event |
ChartEvent. POINTER_ENTER | 当指针进入目标元素或其子元素时 | Event |
ChartEvent. POINTER_LEAVE | 当指针离开目标元素或其子元素时 | Event |
ChartEvent. POINTER_UPOUTSIDE | Event |
如果希望监听拖拽事件,需要设置 draggable 和 droppable 属性
chart.interval().style('draggable', true).style('droppable', true);
事件名 | 说明 | 回调参数 |
---|---|---|
ChartEvent. DRAG_START | 开始拖拽时 | Event |
ChartEvent. DRAG | 拖拽过程中 | Event |
ChartEvent. DRAG_END | 拖拽完成时 | Event |
ChartEvent. DRAG_ENTER | 元素被拖拽进入目标元素内时 | Event |
ChartEvent. DRAG_LEAVE | 元素被拖拽离开目标元素时 | Event |
ChartEvent. DRAG_OVER | 元素被拖拽悬停在目标元素内时 | Event |
ChartEvent. DROP | 元素被放置到目标元素内时 | Event |