echarts tooltip提示框组件自定义背景图像

文章讲述了在实现UI设计要求,为Echarts地图组件的tooltip添加背景图时遇到的问题及解决方案。通过设置tooltip的renderMode为html,附加到body并定义className,然后在外部CSS中设置样式,成功实现了背景图效果。然而,这导致了大屏其他图表不显示的问题。最后,通过将CSS写在独立的style标签中,并隐藏body的滚动条,成功解决了图表显示问题。

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

本次需求根据ui设计,需要给map组件里面的提示框组件加上ui画的背景图,

试过了class 试过行内样式,包括 echarts的extraCssText属性,包括formatter函数 最终都以失败告终 (是我自己的问题)

最终最终看了开发文档  在tooltip里面定义classname

直接上成功的案例:

在tooltip里面定义classname

 tooltip: {
          // 更改悬浮框样式
          renderMode:"html",
          appendToBody:true,
          className: 'custom-tooltip',
.custom-tooltip {
  padding: 0 !important;
  border: none !important;
  background-color: transparent !important;
  background: url('../img/map-bg.png') center center no-repeat;
  background-size: 100% 100%;
  width: 3.9rem;
  height: 3.9rem;
  color: #fff;
  justify-content: start;
}

这样就可以设置tooltip的背景 达到我想要的效果了

效果:

 但是但是但是!

 

这么写,会出现一个问题就是 我鼠标不移入对应的悬浮框,会导致我的大屏有两个图表不显示

阅读文档之后感觉是这里的问题,但是又不知道所以然...

 最终看了文档

 

 加了这两段代码

  renderMode:"html",
          appendToBody:true,

并且css写在另起一个style 不用 deep

 

<style>
body{    
  overflow-y: hidden;
  overflow-x: hidden;
}
.custom-tooltip {
  padding: 0 !important;
  border: none !important;
  background-color: transparent !important;
  background: url('../img/map-bg.png') center center no-repeat;
  background-size: 100% 100%;
  width: 3.9rem;
  height: 3.9rem;
  color: #fff;
  justify-content: start;
}
</style>

解决了刚才我说的问题,这个问题可能只有我遇到 也是找到了解决办法 ,最主要的目的还是记录一下  tooltip的使用 谢谢阅读

ECharts 提供了丰富的配置项来自定义提示框tooltip)的样式。Tooltip 在用户鼠标悬停在图表元素上时显示额外的信息,默认情况下其外观和行为是相对固定的,但你可以根据需求对其进行高度定制。 ### 自定义 ECharts Tooltip 样式的方法: #### 1. 基本属性设置 - **`show`:** 是否显示提示框组件, true 或 false。 - **`trigger`:** 触发类型,可选 'item' (数据项图形触发) 和 'axis' (坐标轴触发),默认为 'item'。 - **`backgroundColor`:** 设置背景颜色,例如 '#fff' 表示白色。 - **`borderColor`:** 边框的颜色。 - **`borderWidth`:** 边框宽度,单位 px。 - **`textStyle`:** 文字样式,包括字体大小、颜色等细节设定。 ```javascript option = { // ...其他配置... tooltip: { show: true, trigger: 'axis', backgroundColor: '#ffffff', // 白色背景 borderColor: '#ccc', // 浅灰色边框线 borderWidth: 1, textStyle: { color: '#000' } }, }; ``` #### 2. 使用 formatter 函数格式化内容 如果你想要更精细地控制提示框内的文本布局或添加 HTML 元素,则可以通过 `formatter` 属性指定回调函数返回所需的内容字符串。 ```javascript tooltip: { // ... formatter: function(params){ let htmlStr = ''; params.forEach((param)=>{ if(param.seriesType === "line"){ htmlStr += `<div style="color:${param.color}; font-weight:bold">${param.name}</div>`; htmlStr += '<ul>'; param.data.forEach((dataItem,i)=>{ htmlStr+=`<li>${i+1}: ${dataItem.value}</li>`; }); htmlStr+='</ul>'; } else{ htmlStr += `${param.marker} ${param.seriesName}<br/>${param.name}:${param.value}`; } }) return htmlStr; }, } ``` 这里我们利用了参数中的 marker(标记符号), seriesName(系列名称), name(类别名/维度值), value 等信息构建了一个更加复杂的结构用于展示更多详细的数据点描述。并且支持内联 CSS 来改变文字样式如字体加粗、修改颜色等等。 #### 3. 添加额外效果 - extraCssText 为了进一步增强个性化设计,在较新版本中还可以通过 `extraCssText` 直接注入额外的CSS规则到当前实例所生成DOM节点之上: ```javascript tooltip :{ ... extraCssText:'box-shadow:0px 6px 12px rgba(0,0,0,.4); border-radius:8px;' }, ``` 这将使工具提示具有阴影并圆角处理。 --- 以上就是对 echarts 中如何自定义 tooltop 样式的简单介绍啦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值