我们的业务中希望tooltip与axisPointer保持一个固定的距离,目前tooltip位置主要还是依赖鼠标的位置。
提议的 API 是什么样的?tooltip: {
position(..., trigger) {}, // trigger 可以为触发tooltip显示的一些相关信息,比如axisPointer,click事件等等
}
我们的业务中希望tooltip与axisPointer保持一个固定的距离,目前tooltip位置主要还是依赖鼠标的位置。
提议的 API 是什么样的?tooltip: {
position(..., trigger) {}, // trigger 可以为触发tooltip显示的一些相关信息,比如axisPointer,click事件等等
}
或者有什么办法可以在图表实例上面获取到axisPointer的一些信息
没有看到 axisPointer 的相关事件,是不是可以手动指定 Tooltip 的位置?https://echarts.apache.org/zh/option.html#tooltip.position
position: (point, params, dom, rect, size) => {
const { contentSize, viewSize } = size;
const position = { top: (viewSize[1] - contentSize[1]) / 2 };
if (point[0] <= viewSize[0] / 2) {
position.left = point[0] + 10;
} else {
position.left = point[0] - 10 - contentSize[0];
}
return position;
},
目前我是这么做的,当axisPointer
开启snap
时,axisPointer的位置还是跟点的不太一样
@jinyang1994 请通过 https://codepen.io/Ovilia/pen/dyYWXWM 或 提供该问题的演示a>。https://www.makeapie.com/editor.html
tooltip.position 可以是回调函数形式的,看看能否实现
@Ovilia我目前的写法应该就是应该Function
回调函数的形式,有一个比较困惑的地方是,我了解了axisPointer
的< /span>。有什么比较好的思路吗?和position
数据,主要是它的top
left
第二个参数params
可以获取到数据,可以尝试用echartsInstance.convertToPixel获取到数据点的位置,横向的应该就是 axisPointer 的位置。
@Ovilia 谢谢你的解答,你的解决方案解决了我的需求
position(point, params) {
if (params.length) {
const { axisIndex, axisValue } = params[0];
instance.convertToPixel({ xAxisIndex: axisIndex }, axisValue); // axisPointer position x
}
}