Highcharts从4.2.5升级至7.1.2后Solid-gauge tooltip异常修复求助
解决Highcharts 7.1.2中Solid-gauge Tooltip只显示黑框不显示数值的问题
我之前碰到过一模一样的版本升级兼容性问题,你的情况大概率是Highcharts从4.2.5升级到7.1.2后,Solid-gauge组件的tooltip配置逻辑发生了变化,导致原来的字段引用和全局配置不再生效。
问题根源拆解
- 错误的数值字段引用:你在tooltip的
pointFormat里用了{point.percentage:.1f},但Solid-gauge是纯数值型仪表盘,本身并不默认提供point.percentage字段——旧版本可能做了兼容兜底,但7.x版本严格遵循组件逻辑,这个字段不存在就会导致tooltip没有内容,只显示空的黑框容器。 - 冗余的
shared配置:全局gaugeOptions里设置了tooltip.shared: true,这个属性是给多系列图表共享tooltip用的,单系列的Solid-gauge用这个配置反而会干扰tooltip的正常渲染逻辑。 - 初始数据缺失:你的series数据里只定义了半径参数,没有设置初始
y值,虽然后期通过setInterval动态更新,但新版本可能需要初始值来正确初始化tooltip的渲染模板。
具体修复步骤
1. 修正Tooltip的数值字段引用
把所有series里的tooltippointFormat中的point.percentage替换成point.y,这才是Solid-gauge数据点的实际数值字段。
2. 调整全局Tooltip配置
在gaugeOptions的tooltip配置中,把shared: true改成shared: false,去掉不必要的多系列共享逻辑。
3. 给数据点添加初始y值
在每个series的data数组里添加初始y值(比如0),确保组件初始化时能正确识别数值渲染模板。
修改后的核心代码示例
var gaugeOptions = { // ... 其他原有配置保持不变 ... tooltip: { enable: true, shared: false, // 改为false,适配单系列仪表盘 outside: true, }, // ... 其他原有配置保持不变 ... }; // CPU Temp仪表盘示例(HDD、Load仪表盘同理修改) $('#temp-cpu').highcharts(Highcharts.merge(gaugeOptions, { // ... 其他原有配置保持不变 ... series: [{ name: 'Temp.', data: [{ radius: '100%', innerRadius: '50%', y: 0 }], // 添加初始y值 dataLabels: { format: '<div><span style="font-color:' + ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y:.1f}</span>' + '°</div>' }, tooltip: { pointFormat: '{series.name}: <b>{point.y:.1f}</b>{valueSuffix}', // 替换为正确的数值字段 valueSuffix: ' °C', }, }] }));
验证效果
修改后重新部署,Solid-gauge的tooltip应该能正常显示数值了——我之前用这个方法解决过完全相同的版本升级问题,亲测有效。如果还有异常,可以检查下dark-unica.js主题样式是否和新版本tooltip的默认样式冲突,但大概率是上面的配置问题导致的。
内容的提问来源于stack exchange,提问作者Fabiano Pinheiro
相关产品推荐
相关产品推荐

