1. 在 toolip 中定义 formatter 方法 ,拿到点击事件时需要的数据
data() {
return {
itemParams: {}
}
}
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function (params) {
let {name, marker, seriesName, value} = params[0]
this.itemParams = params[0]
return `${name}<br>${marker} ${seriesName} ${value}`
}
}
2. 元素之外的点击事件,使用 getZr() 方法
myChart.getZr().on('click', params => {
let containPixel = [params.offsetX, params.offsetY]
// containPixel() 判断点击的点是否在指定的坐标系或者系列上。
// 目前支持在这些坐标系和系列上进行判断:grid, polar, geo, series-map, series-graph, series-pie。
// 我这里是柱状图,所以用 grid 判断是否在坐标系里
if (myChart.containPixel('grid', containPixel)) {
console.log(this.itemParams)
// 执行你的代码
}
})
3. 可点击区域鼠标变成小手
myChart.getZr().on('mousemove', params => {
let containPixel = [params.offsetX, params.offsetY]
if (myChart.containPixel('grid', containPixel)) {
myChart.getZr().setCursorStyle('pointer')
} else {
myChart.getZr().setCursorStyle('default')
}
})