echarts中提示框(tooltip)位置超出图表范围,根据鼠标滑动到的位置,设置提示框的显示位置,如果游标线左边放不下,则显示在右边,反之,提示框显示在左边。
// 当前鼠标位置
position: function (point, params, dom, rect, size) {
// 鼠标坐标和提示框位置的参考坐标系是:以外层div的左上角那一点为原点,x轴向右,y轴向下
var x = 0; // x坐标位置
var y = 0; // y坐标位置
var pointX = point[0];
var pointY = point[1];
// 提示框大小
var boxWidth = size.contentSize[0];
var boxHeight = size.contentSize[1];
// boxWidth > pointX 说明鼠标左边放不下提示框
if (boxWidth > pointX) {
x = 5;
} else { // 左边放的下
x = pointX - boxWidth;
}
// boxHeight > pointY 说明鼠标上边放不下提示框
if (boxHeight > pointY) {
y = 5;
} else { // 上边放得下
y = pointY - boxHeight;
}
return [x, y];
},
参数含义:
(1)point: 鼠标位置,如 [20, 40]。
(2)params: 同 formatter 的参数相同。
(3)dom:tooltip 的 dom 对象。
(4)rect: 只有鼠标在图形上时有效,是一个用x, y, width, height四个属性表达的图形包围盒。
(5)size::包括 dom 的尺寸和 echarts 容器的当前尺寸,例如:{contentSize: [width, height], viewSize: [width, height]}。