Echarts 图表添加点击事件跳转页面,但只有图表部分点击才会跳转页面,坐标轴,区域缩放等点击不跳转。

news2024/11/19 10:28:25

默认的点击事件是这样的:

myChart.on('click', function (param) {
  console.log(param)
})

这个事件需要点击具体图形才会触发,例如我上面的图,想选择a柱子,就需要明确点击到柱体才行,明显不符合正常的预期,正常预期应该是:

点击整个a柱子对应的区域都会触发点击事件,且能对应上a柱子所代表的数据

想要实现这一效果首先要监听echarts全图的点击事件,echarts有个api,但官方文档并没有写:

echartsInstance.getZr()

这个方法获取echart实例全图
然后通过监听全图的点击事件来实现区域点击:

// echart全图点击事件
myChart.getZr().on('click', function (param) {
  // 获取 点击的 触发点像素坐标
  const pointInPixel = [param.offsetX, param.offsetY]
  // 判断给定的点是否在指定的坐标系或者系列上
  if (myChart.containPixel('grid', pointInPixel)) {
    // 获取到点击的 x轴 下标  转换为逻辑坐标
    const xIndex = myChart.convertFromPixel({ seriesIndex: 0 }, pointInPixel)[0]
    console.log(xIndex)
  }
})

这里用到了一个方法:convertFromPixel,这个方法就是将像素坐标值转化为逻辑坐标值:

通过 echartsInstance.getZr() 和 convertFromPixel就可以拿到点击区域对应的数据。

既然每个区域都可以点击,那么为了更好的体验,鼠标移动图中设置一下鼠标样式:

// echart全图移入鼠标事件
myChart.getZr().on('mousemove', function (params) {
  const pointInPixel = [params.offsetX, params.offsetY]
  if (myChart.containPixel('grid', pointInPixel)) {
    // 将此区域的 鼠标样式变为 小手
    myChart.getZr().setCursorStyle('pointer')
  }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1863759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FullCalendar日历组件集成实战(16)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

【Linux】Wmware Esxi磁盘扩容

目录 一、概述 1.1 磁盘分区概念 1.2 LVM概念 二、扩容步骤 二、报错 一、概述 1.1 磁盘分区概念 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux把各种 IDE 设备分配了一个由 hd 前缀组成的文…

使用VBA隐藏图表中的系列

Excel中很多图表相关的操作,并不能通过录制宏得到代码,这个场景中,如下希望开发代码实现自动化,就会无从下手,其实只要找到相关的属性和方法,代码可能并不复杂。 Excel的线图如下所示,其中有三…

每日一学(面试考题)

1、ConCurrentHashMap为什么不允许key为null? 底层 putVal方法 中 如果key || value为空 抛出空指针异常 其实是为了避免在多线程并发场景下的歧义问题 在获取key 返回结果为null 无法判断是 put(k,v)的时候 value本身是n…

Python+Pytest+Allure+Yaml接口自动化测试框架详解

PythonPytestAllureYaml接口自动化测试框架详解 编撰人:CesareCheung 更新时间:2024.06.20 一、技术栈 PythonPytestAllureYaml 版本要求:Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0 二、环境配置 1、安装python3.7,并配置…

探索ONLYOFFICE桌面编辑器8.1:更强大的办公软件(新功能全新详解)

引入 时间到达2024年,办公软件已经成为不可或缺的的一部分。想到办公软件不知道大家首先想到那些产品 office 亦或是 WPS,但一个前者需要购买才能使用完整服务,一个漫天的弹广告不充会员什么都用不了。那难道世面上就没有一块正在好用无广告的…

一天跌20%,近500只下跌,低价可转债为何不香了?

6月以来,Wind可转债低价指数累计下跌7.3%,大幅跑输中价、高价转债。分析认为,市场调整的底层逻辑在于投资者对风险的重新评估和流动性的紧缩,宏观经济的波动和政策环境的不确定性、市场结构性的变化均对低价可转债市场产生了冲击。…

【 IM 服务】IM 翻译服务介绍

融云控制台 IM 翻译功能入口:IM 翻译 融云即时通讯业务提供 IM 翻译 插件,可为 IMLib 与 IMKit SDK 快速接入外部翻译服务,由融云服务端负责对接外部翻译服务供应商的鉴权、API 调用、账号管理、计费等流程。 提示: 1、该插件仅支…

COMSOL - 一个点光源是否总能照亮整个房间?

20 世纪 50 年代,数学家恩斯特施特劳斯(Ernst Straus)提出了一个有趣的问题:在一个侧壁由理想反射镜构成的任意形状的空房间里,一个点光源是否总能照亮整个房间?诺贝尔奖获得者罗杰彭罗斯(Roger…

背包模型——AcWing 423. 采药

背包模型 定义 背包模型是一种常见的算法问题模型,它主要涉及将一些物品放入一个容量有限的背包中,以达到某种最优目标,如最大化价值或最小化重量等。 运用情况 常用于资源分配、项目选择、货物装载等实际问题中。例如,在选择…

一次性掌握openlayers和cesium两个地图开发框架

又到一年毕业季,选择就业的同学,如果还没拿到offer,就要开始准备秋招了。 如果想找webgis相关的岗位,可以通过招聘信息,了解到企业的具体要求。其中,openlayers和cesium有多重要就不用我多说了。 掌握这两…

AI对职场的整顿

普通人离AI还有几年缓冲区,但早点做准备总是好的 AI淘汰的始终是跟不上时代的人。 现在很多公司都有AI培训,不仅GPT,还有Midjourney、Stable DIffusion等一系列AI工具。 像我们公司虽然今年招的少,但也会对新招的应届生统一进行…

VSCode运行前端项目-页面404

背景: 通过VSCode运行前端本地项目,运行成功后打开本地链接:http://1x.xxx.x.xxx:9803/ ,发现打开的页面重定向到404:http//1xx.xxx.x.xxx:9803/404; 并且控制台出现:Failed to load resource: …

邮件自动推送技术如何实现?有哪些优劣势?

邮件自动推送怎么设置?如何评估邮件自动推送的效果? 邮件自动推送是一种高效的电子邮件营销和通信技术,它能够根据预设条件自动发送邮件给特定的收件人。AokSend将深入探讨邮件自动推送技术的实现原理和注意事项。 邮件自动推送&#xff1a…

Java露营基地预约小程序预约下单系统源码

轻松开启户外探险之旅 🌟 露营热潮来袭,你准备好了吗? 随着人们对户外生活的热爱日益增加,露营已成为许多人周末和假期的首选活动。但你是否曾因找不到合适的露营基地而烦恼?或是因为繁琐的预约流程而错失心仪的营地…

手持小风扇品牌有哪些?分享口碑最好的五款手持小风扇

手持小风扇在炎热的夏季成为了许多人解暑的好帮手。它们不仅轻便便携,随时随地都能为我们带来清凉和舒适。然而,市场上手持小风扇的品牌繁多,让人眼花缭乱。为了帮助大家做出更明智的选择,接下来我们将分享口碑最好的五款手持小风…

Inventory Plus - Customizable Inventory System

InventoryPlus是一个直观而强大的工具,可以简化自定义库存、箱子和拾取的创建。该资产主要针对鼠标和键盘设计,但也支持游戏手柄。InventoryPlus可以处理您能想到的所有库存操作(如使用、装备、排序、丢弃等) 它通过调整TriggerAreas、PickUp和Chests的碰撞器类型,适用于3…

PPT录屏怎么录?PPT录屏,3种方法简单操作

在数字化时代,PPT已经成为我们日常工作、学习和生活中不可或缺的一部分。无论是商务报告、教学课件还是产品展示,PPT都能帮助我们更加生动、直观地传递信息。然而,有时候我们会面临PPT录屏怎么录的问题。这时,一个好的PPT录屏功能…

宝兰德受邀出席华为开发者大会2024,携手共绘基础软件新篇章

6月21日-23日,华为开发者大会(HDC 2024)在东莞松山湖举行,作为全球开发者的年度盛会,本次大会汇聚了众多业界精英与前沿技术。华为分享了HarmonyOS、盘古大模型、昇腾AI云服务、GaussDB数据库、自研仓颉编程语言等最新…

Streamer-Sales:开源数字人直播带货系统

Streamer-Sales 支持通过上传产品,一键生成带货话术,支持 RAG,支持文字转语音,支持基于 ComfyUI 合成虚拟人视频,可以直接在线体验,目前效果不是特别好,算是迈出第一步