You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chart.js与react-chartjs-2小屏幕Tooltip显示异常 大屏正常

小屏幕下Chart.js Tooltip hover触发异常修复方案

问题根源

当前配置存在交互模式冲突:interaction.mode设为index,但tooltip.mode设为nearest,小屏幕上图表元素间距被压缩后,这种模式不匹配会导致Chart.js的hover检测逻辑混乱,部分区域无法触发tooltip。另外,showTooltips是Chart.js 2.x的废弃属性,3.x版本已不再生效,留着会干扰配置解析。

修复后的配置

const options = {
    responsive: true,
    maintainAspectRatio: false,
    interaction: {
        mode: "nearest",
        intersect: false,
        axis: 'x' // 限定x轴方向检测,适配小屏幕下的分组类图表
    },
    plugins: {
        tooltip: {
            mode: "nearest",
            displayColors: false,
            intersect: false,
            position: 'average' // 优化小屏幕下tooltip的显示位置,避免被截断
        },
    },
};

关键调整说明

  • 统一interaction和tooltip的模式为nearest,消除检测逻辑冲突
  • 移除废弃的showTooltips属性,避免配置冗余
  • 添加interaction.axis: 'x':对于折线图、柱状图这类按x轴分组的图表,限定只在x轴方向检测hover,小屏幕下能大幅提升触发准确性
  • 添加tooltip.position: 'average':让tooltip在数据点的中间位置显示,避免小屏幕下因空间不足被容器截断

额外排查建议

  • 确认图表容器的高度设置:当maintainAspectRatio: false时,容器必须有明确的height值,否则小屏幕下图表可能出现缩放异常,影响hover检测
  • 考虑升级依赖:你使用的react-chartjs-2@3.3.0和chart.js@3.6.0存在一些小屏幕交互的已知bug,升级到兼容的新版本(如react-chartjs-2@4.3.1 + chart.js@4.4.0)可解决更多潜在问题,且兼容React 17.0.2

内容的提问来源于stack exchange,提问作者Amir Ben Shimol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:37:19