html - chartjs tooltip html:使用数据填充工具提示
问题描述
我更新了一个使用 highcharts 的 10 年网站,并将其转换为 chartjs。
在数据中,它有一个额外的工具提示字段,它是一个 html 字符串。
例子:
data: [
{x: 0,y:395.8,extra: 'Aug 11 2020 00:56:48<br/>12% <br>395.8 <br/>53.9 <br/>56.1 Inches, 95 \u00B0F<br/>4.674 , 0 , 582 , 1000 , 00'},
{x: 1,y:390.2,extra: 'Aug 11 2020 01:56:48<br/>12% <br>390.2 <br/>53.1 <br/>56.2 Inches, 93.2 \u00B0F<br/>4.681 , 0 , 582 , 1000 , 00'},
{x: 2,y:395.8,extra: 'Aug 11 2020 02:56:49<br/>12% <br>395.8 <br/>53.9 <br/>56.1 Inches, 93.2 \u00B0F<br/>4.676 , 0 , 582 , 1000 , 00'}
}]
我想知道如何对 chart.js 做同样的事情。数据正在从 PHP 数据库中输入。所以我可以从额外的字段中更改它,但是我应该把它放在哪里呢?
提前致谢。(chart.js 的新手,抱歉)
解决方案
如果您禁用默认工具提示并创建自定义工具提示,您可以实现您想要的。
如果您有权访问 php API,我会亲自更改数据,以便日期位于 x 轴上,而不仅仅是数字。
var customTooltip = function(tooltip) {
$(this._chart.canvas).css('cursor', 'pointer');
var positionY = this._chart.canvas.offsetTop;
var positionX = this._chart.canvas.offsetLeft;
$('.chart-tooltip').css({
opacity: 0
});
if (!tooltip || !tooltip.opacity) {
return;
}
if (tooltip.dataPoints.length > 0) {
tooltip.dataPoints.forEach(function(dataPoint) {
var content = extra[dataPoint.index];
$('#tooltip').html(content);
$('#tooltip').css({
opacity: 1,
top: positionY + dataPoint.y + 'px',
left: positionX + dataPoint.x + 'px',
});
});
}
};
我创建了一个小提琴来演示使用您的数据:https ://jsfiddle.net/y01ewbtz/
推荐阅读
- java - 简单 HelloWorld 上的 ClassNotFoundException
- node.js - 如何安装 node/npm 以便 'sudo npm' 在 ec2 实例上工作?
- python - 尝试从数据框数据创建堆叠条形图
- git - git show 的错误
- apache - Apache HTTP / mod_jk 仅在一名工作人员处于活动状态时工作
- python - 此代码如何将列表格式化为所需的输出?
- java - 看不懂spring框架中@Async注解的文档
- rest - Linkedin API 帖子未显示
- facebook-graph-api - 如何知道页面是否被用户删除?通过 Facebook 图形 API
- ruby-on-rails - 升级 ruby 版本时出错:未定义的方法 `yaml_as'