Echarts 实现 hover 状态下,坐标轴文字高亮

news/2024/7/19 14:09:29 标签: echarts, js

一、需求说明

Echarts 图中的柱状图和坐标文字皆可点击触发相对应的事件,希望用户鼠标 hover 状态有颜色高亮的效果。如图:

二、实现思路

Echarts 的柱状图 hover 状态已默认有高亮状态,不作叙述;难点在于坐标轴文字如何实现 hover 高亮。经过查找 Echarts 关于轴线的 hover 状态下的颜色配置,并没有。。。data.textStyle.color 不区分任何状态!!!

那就通过监听 Echarts 的 mouseovermouseout 事件来动态更改 data.textStyle.color 的配置?mouseover 事件触发时,将所对应的类目轴的 textStyle.color 设置为你想要的高亮颜色;mouseout 事件触发时,将所对应的类目轴的 textStyle.color 恢复为默认颜色。

三、Demo

效果及在线 Demo:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Echarts Demo</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0-rc.1/echarts.min.js"></script>
  <style>
    html,
    body {
      display: flex;
      justify-content: center;
      background-color:#202532;
    }

    #app {
      width: 700px;
      height: 200px;
    }
  </style>
</head>
<body>
  <div id="app"></div>

  <script>
    const yAxisData = ['HUAWEI', 'Apple', 'OPPO', 'ViVo']
    const myChart = echarts.init(document.getElementById('app'))

    const options = {
      tooltip: {},
      grid: {
        top: 20,
        bottom: 0,
      },
      xAxis: {
        show: false
      },
      yAxis: {
        type: 'category',
        axisLine: {
          show: false
        },
        axisTick: {
          show: false
        },
        triggerEvent: true,
        data: ['HUAWEI', 'Apple', 'OPPO', 'ViVo']
      },
      series: {
        type: 'bar',
        data: [56, 24, 17, 12]
      }
    }

    myChart.setOption(options)

    // 注册 mouseover 事件,类目轴名称切换为自定义颜色
    myChart.on('mouseover', params => {
      if (params.componentType === 'yAxis') {
        const yAxisName = params.value
        const yAxisItem = {
          value: yAxisName,
          textStyle: {
            color: '#00ff7f'
          }
        }

        const index = yAxisData.findIndex(item => {
          return item === yAxisName || item.value === yAxisName
        })

        yAxisData.splice(index, 1, yAxisItem)
        options.yAxis.data = JSON.parse(JSON.stringify(yAxisData))
        myChart.setOption(options)
      }
    })

    // 注册 mouseout 事件,类目轴名称恢复默认颜色
    myChart.on('mouseout', params => {
      if (params.componentType === 'yAxis') {
        const yAxisName = params.value
        const index = yAxisData.findIndex(item => {
          return item === yAxisName || item.value === yAxisName
        })

        yAxisData.splice(index, 1, yAxisName)
        options.yAxis.data = JSON.parse(JSON.stringify(yAxisData))
        myChart.setOption(options)
      }
    })
  </script>
</body>
</html>

http://www.niftyadmin.cn/n/621667.html

相关文章

2.4gwifi最高下载速度_2.4gwifi最高下载速度

现在有不少路由器都采用2.4GHz和5GHz两个频段的设计&#xff0c;那么2.4gwifi最高下载速度是多少&#xff0c;相比于5G WiFi&#xff0c;2.4G WiFi有什么优点呢&#xff1f;下面就为您详细介绍一下。2.4gwifi最高下载速度是多少1、常用的2.4G的wifi无线网络理论最高宽带为300Mb…

Element UI 之 Table 悬停光标聚光灯效果的实现

一、需求说明 业务需要对 Table 数据进行核对&#xff0c;要求单元格具备悬停光标聚光灯效果&#xff0c;方便用户找到对应项&#xff08;提高系统逼格&#xff09;。如图&#xff1a; 二、实现思路 1、通过 cell-mouse-enter 方法获取悬停单元格坐标&#xff0c;坐标信息来…

39码制 特殊符号扫出来不一样_39岁张柏芝穿出18岁少女感,这样穿搭绝对亮眼!纯天然就是不一样...

在寒冷的冬日&#xff0c;要想让温暖与时尚兼具&#xff0c;那么选毛衣这款单品就对了。张柏芝从17岁出道到现在39岁的她&#xff0c;依旧保持着少女感的灵动&#xff0c;大家对张柏芝一开始的认识是因为她演技好&#xff0c;星女郎出道&#xff0c;后来大家更多的是八卦她的婚…

stylelint 使用指南及发布自定义 NPM Package

一、概述 stylelint 自 2015 年诞生以来&#xff0c;已被越来越多项目用于规范 CSS 及其预处理语言编写&#xff08;如 bootstrap&#xff0c;ant-design 等&#xff09; 。 作为一个强大、现代的代码检查工具&#xff0c;在项目中能避免样式代码错误以及强制执行代码约定风格…

Eslint 的使用之微信小程序

日常开发 React、Vue 项目时&#xff0c;一般通过官方或社区流行脚手架搭建项目。对于 Eslint 配置&#xff0c;也能在搭建过程中通过脚手架进行配置。而微信小程序搭建都是通过微信开发者工具生成&#xff0c;本文则分享在小程序模板生成后&#xff0c;如何配置 Eslint。 1、使…

scrapy 没有输出_贪心学院第6个作业 scrapy 架构爬取baidu贴吧

本次的课程是学习scrapy 架构进行网页的爬取&#xff0c;之前也有从网络上的视频预览过scrapy的库&#xff0c;不过当时没有了解这么深入。 只知道可以用scrapy shell 快速调试爬取的内容是否正确&#xff0c;但并没有理解scrapy 的框架。通过这次的直播课&#xff0c;对scrapy…

Nginx 配置二级域名(腾讯云)

根域名已被个人主站占用&#xff0c;想把做过的项目部署到二级域名&#xff0c;特此记录。 一、环境说明 系统&#xff1a; CentOS7.6 应用服务器&#xff1a;Nginx 1.16.1、Tomcat 9.0 安全组已开放端口&#xff1a; 22、80、443、3389 二、解析二级域名并申请 SSL 证书&a…

c可视化编程学习感悟_对编程学习的一些感悟

从07年喜欢上编程到现在一晃过去也3年了&#xff0c;因为家里穷无法继续念大学&#xff0c;不少是有点怨天尤人。没学历&#xff0c;其实找工作还满难的&#xff0c;别人才不管你能力如何&#xff0c;面试机会都不给。当年在一个酒店当门童时就感叹&#xff0c;那酒店的电脑技术…