echarts折线图点击x值动态高亮且显示tooltip

预期效果:提示框显示时,相应的x坐标月份高亮(蓝色),同时提示框显示。

在这里插入图片描述
实现流程:
1.设置一个变量axisValue用于接收选中x值,当横轴值等于选中的axisValue时,设置蓝色

 axisLabel: {
              show: true,
              textStyle: {
                fontSize: 10, //更改坐标轴文字大小
                fontFamily: "PingFangSC-Regular",
                color: function (value, index) {
                  return _this.axisValue !== "" && _this.axisValue === value
                    ? "#32AAFF"
                    : "#666666";
                },
              },
              interval: 0,
            },

代码片段截图:
在这里插入图片描述
2.设置chartsCurrentData用于接收tooltip显示时的charts信息。

 tooltip: {
          trigger: "axis",
          formatter: function (params) {
            _this.chartsCurrentData = params[0];
            }
            // 其他代码信息.....
          }

代码片段截图:
在这里插入图片描述
3.点击时需要拿到chartsCurrentData的值,同时需要把对应横坐标值给axisValue,并且相应月份高亮显示,提示框不消失。

 myChartId.getZr().on("click", (params) => {
        // 拿到当前坐标位置
        const pointInPixel = [ params.offsetX, params.offsetY ];
        // 点击空的地方不执行逻辑
        if (myChartId.containPixel("grid", pointInPixel)) {
          console.log("拿到当前点击节点的索引", _this.chartsCurrentData);
          const {name, dataIndex, seriesIndex} = _this.chartsCurrentData
          _this.axisValue = name;
          // 重新加载折线图
          myChartId.dispatchAction({
            type: "restore",
          });
          // 重新显示弹框位置
          myChartId.dispatchAction({
            type: "showTip",
            seriesIndex: seriesIndex,
            dataIndex: dataIndex,
          });
        }
      });

其实我想说的是,Echarts还可以通过dispatchAction来触发action。又多了解到一种解决问题的方法,特此记录一下。

大家想了解,可以查看官网api: https://echarts.apache.org/zh/api.html#action.tooltip.showTip

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
echarts折线图tooltip显示可以通过设置position属性来实现固定在图形顶部的效果。在echarts的配置项中,可以通过设置tooltip的position属性来指定tooltip显示框的位置。例如,可以将position设置为固定的横向位置和纵向位置,使得tooltip始终固定在图形顶部。具体的实现方法如下所示: ```javascript tooltip: { trigger: 'axis', position: function (point, params, dom, rect, size) { return \[point\[0\] - 100, '10%'\]; // 返回x、y(横向、纵向)两个的位置 } }, ``` 在这个例子中,position函数返回的是一个数组,数组的第一个元素表示tooltip显示框的横向位置,通过`point\[0\] - 100`可以将tooltip显示框的位置向左偏移100个像素。数组的第二个元素表示tooltip显示框的纵向位置,通过`'10%'`可以将tooltip显示框固定在图形顶部的10%位置。 通过设置position属性,可以实现echarts折线图tooltip显示框固定在图形顶部的效果。 #### 引用[.reference_title] - *1* *3* [【echartstooltip显示位置设置](https://blog.csdn.net/wbx_wlg/article/details/122686252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [echarts 折线图 默认显示tooltip提示框内容](https://blog.csdn.net/buyaopingbixiazai/article/details/86547478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值