一、背景

之前学习echarts时,看到相关文章能够实现,但是,后来想重新实现该功能,发现很难找到之前那篇文章,因此,记录下来,留作后续使用。

由于设计稿规划好echarts展示的内容位置(可能较小 300px300px),因此,在展示tooltip的时候,可能会存在悬浮框超出内容位置,而导致被隐藏的可能,所以,可以通过设置tooltip的position来实现展示的位置不超过展示内容位置(如300px 300px,也就是不会溢出而被隐藏

二、技术实现

  1. tooltip: {
  2. position: function(point, params, dom, rect, size) {
  3. // 提示框位置
  4. var x = 0; // x坐标位置
  5. var y = 0; // y坐标位置
  6. // 当前鼠标位置
  7. var pointX = point[0];
  8. var pointY = point[1];
  9. // 提示框大小
  10. var boxWidth = size.contentSize[0];
  11. var boxHeight = size.contentSize[1];
  12. // boxWidth > pointX 说明鼠标左边放不下提示框
  13. if (boxWidth > pointX) {
  14. x = 5;
  15. } else {
  16. // 左边放的下
  17. x = pointX - boxWidth;
  18. }
  19. // boxHeight > pointY 说明鼠标上边放不下提示框
  20. if (boxHeight > pointY) {
  21. y = 5;
  22. } else {
  23. // 上边放得下
  24. y = pointY - boxHeight;
  25. }
  26. return [x, y];
  27. }
  28. }