最近在做项目中用到了雷达图,需要用到自定义tooltip 查了相关资料。
一般的tooltip提供的简单的功能往往无法满足我们实际开发需要 ,那就动起手来 baidu吧
提示框浮层内容格式器,支持字符串模板和回调函数两种形式。
字符串模板,就是把相对应的模板变量进行拼串
formatter: ‘{b0}: {c0}
{b1}: {c1}’
2.回调函数
// 回调函数格式
(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string
主要取用第一个参数 params 是 formatter 需要的数据集
{
componentType: 'series',
// 系列类型
seriesType: string,
// 系列在传入的 option.series 中的 index
seriesIndex: number,
// 系列名称
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// 传入的数据值
value: number|Array,
// 数据图形的颜色
color: string,
// 饼图的百分比
percent: number,
}
自定义formatter函数 这里可以返回自己需要的html片段
formatter: function(params) {
var result = ''
var dotHtml = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#1197b8"></span>'
params.forEach(function (item) {
result += item.axisValue + "</br>" + dotHtml + item.data
})
return result
}
给提示加单位;提示内容显示不全时自定义位置,通过position属性设置
tooltip:{
position: function(point, params, dom, rect, size) {
//其中point为当前鼠标的位置,size中有两个属性:viewSize和contentSize,分别为外层
div和tooltip提示框的大小
var x = point[0];//
var y = point[1];
var viewWidth = size.viewSize[0];
var viewHeight = size.viewSize[1];
var boxWidth = size.contentSize[0];
var boxHeight = size.contentSize[1];
var posX = 0;//x坐标位置
var posY = 0;//y坐标位置
if (x < boxWidth) {//左边放不开
posX = 5;
} else {//左边放的下
posX = x - boxWidth;
}
if (y < boxHeight) {//上边放不开
posY = 5;
} else {//上边放得下
posY = y - boxHeight;
}
return [posX, posY];
},
formatter:function(params)
{
var relVal = "";
// for (var i = 0, l = params.length; i < l; i++) {//有多种柱子时,用循环
relVal += params.seriesName +'<br/>'+params.marker
+params.name+ ' : ' + params.value+"元/吨公里";
// }
return relVal;
}
},