highcharts 提示框样式

本文介绍如何解决Highcharts提示框样式单一的问题,通过设置useHTML属性为true,可以使用HTML来格式化提示框的内容,从而实现更丰富的样式定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

困扰我一下午的问题,highcharts 提示框中的内容经过格式化以后效果都是黑白色比较难看效果如下。


看官方文档对tooltip 中formatter的说明:

formatter格式化程序 :Function

格式化tooltip的文本的回调函数。返回false可对数据序列上特定的点禁用tooltip。

支持一个HTML子集。tooltip的HTML元素会被解析和转换成SVG,因此这不是完全的HTML渲染器。支持以下这些标记:<b>,<strong>,<i>,<em>,<br/>,<span>.Spans标记可以用style属性来设定样式,但是只有和SVG共享的与文本相关的CSS会被处理。

从 version 2.1开始,tooltip(提示框)可通过shared选项被多个数据序列共享。格式化程序中的可用数据根据tooltip是否被共享而有些不同。在被共享的tooltip中,除了x这个所有数据节点通用的属性之外的所有属性,都被保存在一个数组this.points中。

说明其中是支持html标签,和style属性,但是不论怎么加样式都没效果。

tooltip: {
 crosshairs: true,
 shared: true,
 formatter: function () {  
     var result = '<b>'+Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x)+'</b><br/>' ;
     for(var i=0;i<this.points.length;i++){
	result += "<span style='color:"+ this.points[i].series.color+"'>" 
		+ this.points[i].series.name +":  </span><b>" + this.points[i].y 
		+ this.points[i].point.unit+"</b><br/>";
     }
     return  result; 
 }
},

后来发现tooltip的useHTML属性

useHTML使用HTML :Boolean2.2

使用HTML替代SVG来渲染提示框内容。使用HTML可以在提示框中进行进一步的格式化,允许有表格和图像。这也被推荐用于rtl languages(从右到左读的语言)因为它在早期的Firefox中忙于处理rtl bugs。 Defaults tofalse.
使用html替换SVG效果,加上useHTML:true就可以实现对提示框的样式修改。改后效果:





### Highcharts 单点提示框配置 在 Highcharts 中,单点提示框tooltip)可以通过 `tooltip` 属性来配置。此属性允许自定义当鼠标悬停在一个数据点上时显示的信息。对于单点提示框的具体配置,可以使用如下方式: #### 基本配置 要启用并定制单点提示框,可以在初始化图表时通过 `chart.options.tooltip` 设置各种参数[^1]。 ```javascript var chart = Highcharts.chart('container', { tooltip: { enabled: true, formatter: function () { return 'The value for <b>' + this.x + '</b> is <b>' + this.y + '</b>'; } }, series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] }); ``` 这段代码展示了如何利用 `formatter` 函数来自定义提示框内的HTML内容,从而实现更灵活的表现形式[^3]。 #### 使用共享模式 如果希望多个系列的数据在同一位置上的值能在同一个提示框中展示,则应关闭共享模式;反之则开启它。默认情况下,共享模式是关闭的,这意味着每次只会有一个单独的提示框被激活。 ```javascript tooltip: { shared: false // 关闭共享模式以确保只显示单点提示框 } ``` #### 自定义样式与功能增强 除了基本的文字描述外,还可以进一步美化提示框或者增加交互性。比如调整背景颜色、字体大小等视觉效果,甚至嵌入链接或图像到提示框里去。 ```javascript tooltip: { backgroundColor: '#FCFFC5', style: { color: 'black' }, useHTML: true, // 启用HTML渲染支持更多复杂结构 headerFormat: '<table>', pointFormat: '<tr><td>{series.name}: </td>' + '<td><b>{point.y:.1f} mm</b></td></tr>', footerFormat: '</table>' } ``` 上述例子说明了怎样构建一个带有表格布局的高级提示框,并且启用了 HTML 渲染以便于插入更加复杂的 DOM 结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值