返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ECharts鼠标事件的处理方法详解
  • 304
分享到

ECharts鼠标事件的处理方法详解

2024-04-02 19:04:59 304人浏览 泡泡鱼
摘要

事件是用户或浏览器自身执行的某种动作,如click、mouseover、页面加载完毕后触发load事件,都属于事件。 为了记录用户的操作和行为路径,需要完成鼠标事件处理和组件交互的行

事件是用户或浏览器自身执行的某种动作,如click、mouseover、页面加载完毕后触发load事件,都属于事件。
为了记录用户的操作和行为路径,需要完成鼠标事件处理和组件交互的行为事件的处理。

响应某个事件的函数称为事件处理程序,也可称为事件处理函数、事件句柄。鼠标事件即鼠标操作点击图表的图形(如click、dblclick、contextmenu)或hover图表的图形(如mouseover、mouseout、mousemove)时触发的事件。

在ECharts中,用户的任何操作,都可能会触发相应的事件。在ECharts中,支持9种常规的鼠标事件,包括click、dblclick、mousedown、mousemove、mouseup、mouseover、mouseout、globalout、contextmenu。

其中,click事件最为常用。常规的鼠标事件及说明如表所示。

在一个图表元素上相继触发mousedown和mouseup事件,才会触发click事件。两次click事件相继触发才会触发dblclick事件。如果取消了mousedown或mouseup中的一个,click事件就不会被触发。如果直接或间接取消了click事件,dblclick事件就不会被触发。

利用某学院2020年专业招生情况绘制柱状图,如图所示。

当点击添加鼠标单击事件的柱状图中的“人工智能”柱体后,弹出一个提示对话框,如上图所示。

单击提示对话框的确定按钮后,将自动打开相应的百度搜索页面,如下图所示。

该图例的源代码如下:


<html>

<head>
	<meta charset="utf-8">
	<script type="text/javascript" src='js/echarts.js'></script>
</head>

<body>
	<div id="main" style="width: 800px; height: 600px"></div>
	<script type="text/javascript">
		var myChart = echarts.init(document.getElementById("main"));  //基于准备好的dom,初始化ECharts图表
		var option = {  //指定图表的配置项和数据
			color: ['LimeGreen', 'DarkGreen', 'red', 'blue', 'Purple'],
			backgroundColor: 'rgba(128, 128, 128, 0.1)',  //rgba设置透明度0.1
			title: { text: '某学院2020年专业招生情况汇总表', left: 70, top: 9 },
			tooltip: { tooltip: { show: true }, },
			legend: { data: ['2019年招生'], left: 422, top: 8 },
			xAxis: {  //配置x轴坐标系
				data: ["大数据", "云计算", "ERP", "人工智能", "软件开发", "移动开发", "网络技术"]
			},
			yAxis: {},  //配置y轴坐标系
			series: [{  //配置数据系列
				name: '招生人数:',
				type: 'bar', barWidth: 55,  //设置柱状图中每个柱子的宽度
				data: [350, 200, 66, 210, 466, 200, 135]
			}]
		};
		myChart.setOption(option);  //使用刚指定的配置项和数据显示图表
		//回调函数处理鼠标点击事件并跳转到相应的百度搜索页面
		myChart.on('click', function (params) {
			var yt = alert("鼠标单击事件,您刚才单击了:" + params.name);

			window.open('https://www.baidu.com/s?wd=' + encodeURIComponent(params.name));
		});
		window.addEventListener("resize", function () {
			myChart.resize();  //使图表自适应窗口的大小
		});
		myChart.setOption(option);  //为echarts对象加载数据
	</script>
</body>

</html>

在ECharts中,所有的鼠标事件都包含一个参数params。params是一个包含单击图形的数据信息的对象,params中的基本属性及含义如表所示。

回调函数本身是主函数的一个参数,将回调函数作为参数传到另一个主函数中,当主函数执行完后,再执行回调函数。这个过程就叫作回调。在回调函数中获得对象中的数据名、系列名称,然后在数据中索引得到其他的信息后,再更新图表、显示浮层等。

利用产品销量和产量利润数据绘制柱状图,如图所示。

当单击左图中的第2件产品“羊毛衫”的“产量”柱体后,弹出一个提示对话框,如右图所示。

由右图可以得到左图中的第2件产品“羊毛衫”的“产量”柱体params参数的各属性信息。

图例的源代码如下:


<html>

<head>
	<meta charset="utf-8">
	<script type="text/javascript" src='js/echarts.js'></script>
</head>

<body>
	<div id="main" style="width: 800px; height: 600px"></div>
	<script type="text/javascript">
		//基于准备好的dom,初始化ECharts图表
		var myChart = echarts.init(document.getElementById("main"));
		var option = {  //指定图表的配置项和数据
			color: ['LimeGreen', 'DarkGreen', 'red', 'blue', 'Purple'],
			backgroundColor: 'rgba(128, 128, 128, 0.1)',  //rgba设置透明度0.1
			title: { text: '产品销量产量利润统计', left: 70, top: 9 },
			xAxis: {  //配置x轴坐标系
				data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
			},
			yAxis: {},  //配置y轴坐标系
			tooltip: {  //配置提示框组件
				trigger: 'item', show: true,
				fORMatter: "{a} <br/>{b} : {c}"
			},
			legend: {},
			series: [  //配置数据系列
				{   //设置数据系列1:销量
					name: '销量', type: 'bar',
					data: [5, 28, 16, 20, 15, 33]
				},
				{   //设置数据系列2:产量
					name: '产量', type: 'bar',
					data: [15, 38, 20, 24, 20, 45]
				},
				{   //设置数据系列3:利润
					name: '利润', type: 'bar',
					data: [25, 15, 10, 10, 15, 22]
				}
			]
		};
		myChart.setOption(option);  //使用刚指定的配置项和数据显示图表
		window.addEventListener("resize", function () {
			myChart.resize();  //使图表自适应窗口的大小
		});
		//回调函数处理鼠标点击事件并且显示各数据信息内容
		myChart.on('click', function (params) {
			alert("第" + (params.dataIndex + 1) + "件产品:" + params.name + "的" +
				params.seriesName + "为:" + params.value +
				"\n\n 1--componentType:" + params.componentType +
				"\n 2--seriesType:" + params.seriesType +
				"\n 3--seriesIndex:" + params.seriesIndex +
				"\n 4--seriesName:" + params.seriesName +
				"\n 5--name:" + params.name +
				"\n 6--dataIndex:" + params.dataIndex +
				"\n 7--data:" + params.datax +
				"\n 8--dataType:" + params.dataType +
				"\n 9--value:" + params.value +
				"\n 10--color:" + params.color);
		});
		myChart.setOption(option);  //为echarts对象加载数据 
	</script>
</body>

</html>

在包含鼠标单击事件的参数params的柱状图代码中,可以通过调用回调函数,访问鼠标事件的参数params中的基本属性,如params.dataIndex、params.name、params.seriesName、params.value,在倒第数12、13行 显示出“第2件产品:羊毛衫产量为38”。

倒数第11行至倒数第2行代码 依次访问鼠标事件的参数params中的10种基本属性,并依次显示在图5-13的提示对话框中的每一行上。

注意,其中的params.data,params.dataType的值为undefined。

总结

到此这篇关于ECharts鼠标事件处理的文章就介绍到这了,更多相关ECharts鼠标事件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: ECharts鼠标事件的处理方法详解

本文链接: https://lsjlt.com/news/128383.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ECharts鼠标事件的处理方法详解
    事件是用户或浏览器自身执行的某种动作,如click、mouseover、页面加载完毕后触发load事件,都属于事件。 为了记录用户的操作和行为路径,需要完成鼠标事件处理和组件交互的行...
    99+
    2024-04-02
  • 详解OpenCV中简单的鼠标事件处理
    目录cv2.setMouseCallback函数语法 回调函数  谈及鼠标事件,就是在触发鼠标按钮后程序所做出相应的反应,但是不影响程序的整个线程。这有...
    99+
    2024-04-02
  • pygame实现键盘和鼠标事件的处理
    所谓事件,就是程序上发生的事。例如用户按下键盘上的某个键或者单击、移动鼠标,对于这些事件,游戏程序需要作出反应。如《 pygame 图像/图形绘制》中例子,程序会一直运行下去,直到用...
    99+
    2024-04-02
  • C#鼠标事件的处理机制是什么
    本篇内容介绍了“C#鼠标事件的处理机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#鼠标事件包括鼠标的很多操作,比如为用户提供鼠标...
    99+
    2023-06-17
  • jquery中 鼠标移动的事件方法是()
    jQuery是目前应用最广泛的JavaScript库之一,它封装了许多JavaScript操作,极大地方便了前端开发人员的工作。在jQuery中,鼠标移动事件非常常见,开发者可以使用不同的方法来处理这些事件。下面,我们来了解一下在jQuer...
    99+
    2023-05-18
  • jquery鼠标的事件方法怎么使用
    这篇“jquery鼠标的事件方法怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jquery鼠标的事件方法怎么使用”文...
    99+
    2023-07-04
  • vue中怎么处理鼠标划过事件
    本篇文章给大家分享的是有关vue中怎么处理鼠标划过事件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。鼠标事件进行监听需求中,在一个table(...
    99+
    2024-04-02
  • vue下如何处理鼠标划过事件
    这篇文章主要介绍“vue下如何处理鼠标划过事件”,在日常操作中,相信很多人在vue下如何处理鼠标划过事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue下如何处理鼠标划过事件”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • Java中关于MouseWheelListener的鼠标滚轮事件详解
    目录关于MouseWheelListener的鼠标滚轮事件一、MouseWheelListener接口二、public int getWheelRotation()Java获取鼠标滚...
    99+
    2024-04-02
  • jquery中属于鼠标的事件方法有哪些
    本教程操作环境:windows7系统、jquery3.6.1版本、Dell G3电脑。JQuery鼠标事件整理1.单击 :左键单击、右键单击.Click():鼠标左键单击为 JavaScript 的"click" 事件绑...
    99+
    2022-11-22
    javascript jquery 鼠标
  • vue鼠标悬停事件监听实现方法
    目录前言情景描述解决方法总结前言 开发框架为 vue2.x 情景描述 需求是这样的:页面在鼠标悬停(不动)n秒之后,页面进行相应的事件。 比如在我的需求下,是鼠标悬停15秒之后,页面...
    99+
    2024-04-02
  • Python+Selenium键盘鼠标模拟事件操作详解
    目录元素的基本操作鼠标键盘模拟事件操作利用 Keys 模块模拟键盘操作事件利用 Action 类模拟鼠标操作事件当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作,比如之...
    99+
    2024-04-02
  • Android事件处理的两种方式详解
    安卓提供了两种方式的事件处理:基于回调的事件处理和基于监听的事件处理。 基于监听的事件处理 基于监听的事件处理一般包含三个要素,分别是: Event Source(事件源):事件发生...
    99+
    2023-02-28
    Android事件处理 Android事件处理机制 Android事件处理流程
  • 在jquery中属于鼠标事件方法是什么
    本篇内容介绍了“在jquery中属于鼠标事件方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • ECharts柱状图关闭鼠标hover时的高亮样式详解
    最近在做图表相关的需求,使用的是echarts来画图。 今天算是遇到一个比较坑的点了吧,就是两根柱状图重叠对比,设计图把某根柱状图的颜色设计得比较浅,因为echarts的柱状图本身h...
    99+
    2023-05-18
    echarts柱状图点击高亮 echarts柱状图点击高亮 echarts柱状图颜色
  • PythonTkinter之事件处理详解
    目录事件绑定方法常用事件类型Event事件对象事件处理,是 GUI 程序中不可或缺的重要组成部分,相比来说,控件只是组成一台机器的零部件, 而事件处理则是驱动这台机器“正...
    99+
    2024-04-02
  • Python中pygame的mouse鼠标事件用法实例
    本文实例讲述了Python中pygame的mouse鼠标事件用法。分享给大家供大家参考,具体如下: pygame.mouse提供了一些方法获取鼠标设备当前的状态 ''' pygame.mouse.get...
    99+
    2022-06-04
    鼠标 实例 事件
  • WPF中鼠标/键盘/拖拽事件以及用行为封装事件详解
    目录鼠标事件键盘输入事件拖拽事件用行为封装事件用事件来实现用行为来封装本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述...
    99+
    2023-03-02
    WPF鼠标事件 WPF键盘事件 WPF拖拽事件 WPF封装事件 WPF事件
  • 鼠标单击变双击的详细解决方法
    如果你的鼠标单击变成了双击,可能是由于以下几个原因:1. 鼠标设置问题:首先,你可以尝试检查一下你的鼠标设置。在Windows系统中...
    99+
    2023-09-07
    鼠标
  • Android基于hover组件实现监控鼠标移动事件的方法
    本文实例讲述了Android基于hover组件实现监控鼠标移动事件的方法。分享给大家供大家参考,具体如下: Android之前对于鼠标光标事件的监控非常少,4.0之后多了一个h...
    99+
    2022-06-06
    鼠标移动事件 监控 方法 事件 hover Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作