echarts tooltip 超出可视范围解决办法

echarts yekong

当 ECharts 的 Tooltip 提示框内容超出可视范围时,可以通过配置 tooltipposition 属性来控制提示框的位置,以确保它在可视范围内显示。以下是一个示例代码,演示如何调整 Tooltip 的位置:

// 初始化图表对象
const chart = echarts.init(document.getElementById('chart-container'));

// 配置图表选项
const options = {
  // 其他配置项...
  tooltip: {
    trigger: 'item',
    position: function (point, params, dom, rect, size) {
      // 获取可视区域的宽度和高度
      const viewWidth = size.viewSize[0];
      const viewHeight = size.viewSize[1];
      
      // 获取提示框内容的宽度和高度
      const tooltipWidth = dom.offsetWidth;
      const tooltipHeight = dom.offsetHeight;
      
      // 设置提示框的位置
      let left = point[0];
      let top = point[1];
      
      // 判断提示框是否超出可视范围,如果超出则调整位置
      if (left + tooltipWidth > viewWidth) {
        left = viewWidth - tooltipWidth;
      }
      if (top + tooltipHeight > viewHeight) {
        top = viewHeight - tooltipHeight;
      }
      
      return [left, top];
    },
    // 其他配置项...
  },
  // 其他配置项...
};

// 使用配置项绘制图表
chart.setOption(options);

在上述代码中,我们配置了 tooltipposition 属性为一个函数,该函数接收参数 pointparamsdomrectsize。通过判断提示框内容的宽度和高度与可视区域的宽度和高度的关系,可以确定提示框的位置。如果提示框超出可视范围,则调整位置使其适应可视范围内显示。

你可以根据需要自定义调整提示框的位置逻辑,并根据实际情况修改示例代码中的判断条件和位置计算方式,以确保提示框在可视范围内正确显示。

喜欢