echart 中 tooltip 基本设置

tooptip.position

chart配置文档
将提示框限制在 图形范围内
方法一:

let  opt ={
   tooltip:{
        position: function (point, params, dom, rect, size) {
            // 提示框 限制在chart 图中
            var x = 0; // x坐标位置
            var y = 0; // y坐标位置

            var pointX = point[0];
            var pointY = point[1];

            // 提示框大小
            var boxWidth = size.contentSize[0];
            var boxHeight = size.contentSize[1];

            // boxWidth > pointX 说明鼠标左边放不下提示框
            if (boxWidth > pointX) {
              x = 25;
            } else {
              // 左边放的下
              x = pointX - boxWidth;
            }

            if (boxHeight > pointY) {
              y = 5;
            } else {
              // 上边放得下
              y = pointY - boxHeight;
            }
            dom.style.transform = 'translateZ(0)'  // 提示框被遮挡时可以设置
            return [x, y];
          },
          formatter:(param)=>{
          // 自定义 弹窗里面的 内容
            let  str = `<div>
                <span> ${param.name} :</span>
                 <span style='color:${param.data.color}'> ${param.value} </span>
             </div>`
             
            return str
          },
    }
}
 

方法二 :


let chartopt = {
   tooltip:{
      confine: true ,
      ...
   }
}

在 Vue3 动态更新 Echarts tooltip 的方法如下: 1. 首先,在 Vue3 ,需要使用 ref 来引用一个变量,这个变量可以是基本数据类型或对象类型。我们需要在组件创建一个 ref 变量来引用 Echarts 实例,然后将其传递给 Echarts 的 option 。 2. 在 Echarts 的 option ,我们需要设置 tooltip 的 trigger 为 'axis',并且在 tooltip 的 formatter 函数返回一个字符串模板。 3. 我们可以使用 watchEffect 监听 ref 变量的变化,在变量变化时,更新 Echarts 的 option,从而动态更新 tooltip。 代码示例: ``` <template> <div ref="chart" style="height: 400px;"></div> </template> <script> import * as echarts from 'echarts'; import { ref, watchEffect } from 'vue'; export default { setup() { const chartRef = ref(null); const chart = ref(null); // 创建 Echarts 实例 watchEffect(() => { if (!chartRef.value) return; chart.value = echarts.init(chartRef.value); // 设置 Echarts option chart.value.setOption({ tooltip: { trigger: 'axis', formatter: (params) => { return params.data.name + ': ' + params.data.value; }, }, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], }, yAxis: { type: 'value', }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', }], }); }); // 监听数据变化,动态更新 tooltip watchEffect(() => { if (!chart.value) return; const data = [820, 932, 901, 934, 1290, 1330, 1320]; chart.value.setOption({ series: [{ data, }], tooltip: { formatter: (params) => { return params.data.name + ': ' + params.data.value + '<br/>' + 'Total: ' + data.reduce((a, b) => a + b); }, }, }); }); return { chartRef, }; }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值