echarts鼠标移入的提示框自定义

直接上代码

tooltip: {
    trigger: "item",
    backgroundColor: "rgba(5,26,78,0)", // 背景色
    extraCssText: "box-shadow:none;", // 覆盖原始style样式
    borderWidth: 0, // 边框宽度

    textStyle: {
      color: "#fff", // 文字颜色
    },
	// 自定义提示内容
    formatter: function (params) {
      const itmData = params.data;
      const label = itmData?.dataLabel || params.name;
      let str = `<div class="map-info-popup"><div class="title">${label}</div>`;

      if (itmData && itmData.data && itmData.data.length > 0) {
        for (let i = 0; i < itmData.data.length; i++) {
          str += `<div class="pop-item">
            <div class="pop-item-name">${itmData.data[i].name}</div>
            <div class="pop-item-value">${itmData.data[i].value + itmData.data[i].unit}</div>
          </div>`;
        }
        str += `</div>`;
      } else {
        str += `<div class="pop-item">
        <div class="pop-item-name">无数据</div>
          <div class="pop-item-value">--</div>
          </div></div>`;
      }
      return str;
    },
    // 设置弹框位置
    position: function (pos, params, dom, rect, size) {
      return [pos[0] - size.contentSize[0] / 2, pos[1] - size.contentSize[1] - 10];
    },
  },

css 样式

<style lang="scss">
.map-info-popup {
  color: #fff;
  background: rgba(4, 31, 88, 0.9);
  border: 1px solid #0096ff;
  //box-shadow: inset 0 0 6px 2px rgba(0, 142, 255, 0.4);
  box-shadow: inset 0 0 10px 4px rgba(0, 222, 255, 0.4);
  background-attachment: fixed;

  padding: 10px;
  padding-bottom: 20px;
  width: 250px;
  display: flex;
  flex-direction: column;
  text-align: left;
  font-family: Source Han Sans CN;
  font-weight: 400;
  font-size: 14px;
  &::after {
    content: "";
    position: absolute;
    bottom: -10px; /* 小三角形的顶部位于div底部下方10px的位置 */
    left: 50%;
    transform: translateX(-50%);
    width: 34px;
    height: 18px;
    background: url("./img/popup-btm.png") no-repeat;
    background-size: 100% 100%;
  }

  .title {
    line-height: 14px;
  }
  .pop-item {
    display: flex;
    height: 14px;
    padding: 10px 0px;
    line-height: 14px;
    flex-direction: row;
    justify-content: space-between;
    .pop-item-name {
      min-width: 160px;
    }
    .pop-item-value {
      min-width: 60px;
      text-align: right;
    }
  }
}
</style>

效果

在这里插入图片描述

参考Echarts API

formatter
position

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值