近期用vue做项目,使用echarts图表画图时,tooltip显示内容过多,会导致tooltip超出图表所在div。
但是echarts tooltip应用的是绝对定位,且overflow属性为hidden。所以超出部分不会展示。
搜索大家解决方案,有说tooltip配置项confine设置为true,但是现实内容过多时,一样显示不全。所以一个完美的解决方案就是让超出div的部分显示出来。
debug方式和解决方案分享出来。
1.tooltip 的enterable属性设置为true,让鼠标浮动时能进入tooltip,查看其样式;
2.将这里position改为fixed,上级div的overflow属性去掉,tooltip能超出div展示;
3.tooltip中position属性支持回调函数显示, position: function (point, params, dom, rect, size){}
其中point为鼠标位置的二维数组
dom为tooltip对应的<div>显示块儿
params是参数,跟formatter回调函数的params一样
则在该回调函数中,设置dom的position属性为fixed,返回position数组为
[鼠标x轴位置 + 图距离浏览器左侧距离,鼠标y轴位置 + 图距浏览器上端距离 ]
类似代码为:
显示效果为: