echart有自主的tooltip展示,但是有时会遇到要求点击悬浮框内容,然后就需要自定义定位,怕忘记所以记录一下
查询文档也能得知,主要是tooltip下的position方法
position: (p, data) => { // 其中p为当前鼠标的位置
if (!data.data) return ``;
if (data.data.length) {
let _height = document.querySelector('.className').offsetHeight;
let _width = document.querySelector('.className').offsetWidth;
let left = p[0];
let top = p[1];
if (p[0] >= _width - 240) {
left = _width - 240;
} else {
left = p[0]
}
if (p[1] >= _height - 200) {
top = _height - 200;
} else {
top = p[1]
}
left = p[0];
top = p[1];
const _axisValueLabel = data.axisValueLabel;
if (_axisValueLabel != this.axisValueLabelGlobal) {
this.axisValueLabelGlobal = _axisValueLabel;
}
return [left, top];
}
}
效果如下
默认:
自定义后:
ps:好像data中的数据获取不太一样,我用的是气泡图,之前看柱状图好像还嵌套了一层,具体使用前console打印输出看看就行,left和top分别是坐标,可自行根据ui图效果调整