前端-echarts tooltip展示多项自定义数据

效果如图,鼠标滑动到某一个柱子的时候,出现这一项数据的多个自定义数据,外加自己的模板样式渲染。

希望能展示每一列中的多个自定义数据

代码部分

主要是在data中,value就是实际展示的主数据,其他字段名为自定义的数据。

option = {
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      crossStyle: {
        color: '#999'
      }
    },
    formatter: function(params) {
              // params 是一个数组,包含了每个数据项的信息
              var result = `<div style="width: 402px;font-family: PingFang SC, PingFang SC-Regular;backdrop-filter: blur(20px);">
                <div class="top" style="margin-top:14px;margin-left:20px">
                  <div class="tl" style="width: 50px;font-size: 18px;margin-bottom: 4px;margin-right: 200px;">里程:${params[0].data.b}(km)</div>
                  <div class="tr" style="width: 50px;font-size: 18px;margin-bottom: 4px;">速度:${params[0].data.a}(km/h)</div>
                  <div class="tr" style="width: 50px;font-size: 18px;margin-bottom: 4px;">速度:${params[0].data.value}(km/h)</div>
                </div>
              </div>`;
              return result;
            },
  },
  toolbox: {
    feature: {
      dataView: { show: true, readOnly: false },
      magicType: { show: true, type: ['line', 'bar'] },
      restore: { show: true },
      saveAsImage: { show: true }
    }
  },
  legend: {
    data: ['Precipitation', 'Temperature']
  },
  xAxis: [
    {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      axisPointer: {
        type: 'shadow'
      }
    }
  ],
  yAxis: [
    {
      type: 'value',
      name: 'Precipitation',
      min: 0,
      max: 250,
      interval: 50,
      axisLabel: {
        formatter: '{value} ml'
      }
    },
  ],
  series: [
    {
      name: 'Precipitation',
      type: 'bar',
      tooltip: {
        valueFormatter: function (value) {
          return value + ' ml';
        }
      },
      data: [
      {value:44, a:2, b:3},{value:33, a:2, b:3},{value:22, a:2, b:3},{value:66, a:2, b:3},{value:23, a:2, b:3},{value:23, a:2, b:3},{value:23, a:2, b:3}
      ],
    },
  ]
};

新增简易版:

效果图:

tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'shadow'
          },
          formatter: function (params) {
            let tooltipHtml = '';
            params.forEach(param => {
              if (param.seriesType === 'bar') {
                tooltipHtml += `<div>工序任务:${param.name}</div>`;
                tooltipHtml += `<div>完工数量:${param.value}</div>`;
              } else {
                tooltipHtml += `<div>完工率:${param.value}%</div>`;
              }
            });
            return tooltipHtml;
          }
        },

Vue 的 `show-overflow-tooltip` 是一个用于文本溢出时显示提示的指令,在 Vue 中使用时,可以直接在需要显示提示的元素上添加该指令即可。该指令的功能是固定的,无法直接进行自定义。 不过,你可以通过修改指令的实现方式来实现自定义的效果。具体而言,你可以创建一个自定义指令,并使用 JavaScript 和 CSS 实现相应的提示效果。这样就能够根据自己的需求来自定义提示的样式、内容等。 以下是一个简单的示例代码,用于演示如何实现自定义的提示效果: ```html <template> <div class="custom-tooltip" v-custom-tooltip="{ content: 'This is a custom tooltip!' }"> Some text here... </div> </template> <script> export default { directives: { 'custom-tooltip': { bind: function (el, binding) { // 获取传入的提示内容 const content = binding.value.content; // 创建提示元素 const tooltip = document.createElement('div'); tooltip.className = 'custom-tooltip-content'; tooltip.innerText = content; // 将提示元素插入到页面中 el.appendChild(tooltip); // 监听鼠标移入事件 el.addEventListener('mouseenter', function () { tooltip.style.display = 'block'; }); // 监听鼠标移出事件 el.addEventListener('mouseleave', function () { tooltip.style.display = 'none'; }); } } } } </script> <style> .custom-tooltip { position: relative; } .custom-tooltip-content { display: none; position: absolute; top: 100%; left: 0; padding: 5px; background-color: #333; color: #fff; border-radius: 3px; } </style> ``` 在上述示例中,我们创建了一个名为 `custom-tooltip` 的自定义指令,并在其中实现了自定义的提示效果。具体而言,我们在指令中创建了一个提示元素,并通过事件监听实现了鼠标移入移出时的显示与隐藏。同时,我们还使用 CSS 对提示元素进行了样式的设置。在使用时,只需要将该指令添加到需要显示提示的元素上,并通过 `content` 属性传入提示内容即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值