echarts点击某一行显示菜单

本文介绍了如何在ECharts图表中设置点击事件,触发时显示菜单子组件,包括获取点击行的参数、位置信息,以及子菜单组件的显示与交互逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

echarts点击某一行显示菜单

在这里插入图片描述

1.echarts图表点击触发事件

获取图表点击所在行的参数和位置信息

//图表点击事件
myChart[this.id].on("click", function (params) {
	const { data, event } = params;
	_this.$parent.$refs.submenuRef.isShowSubMenu = true;
	_this.$parent.$refs.submenuRef.submenuStyle = { top: event.event.pageY + "px", left: event.event.pageX + "px" };
	_this.$parent.$refs.submenuRef.data = { ...data };
});

2. 菜单子组件

参数:
isShowSubMenu: false,
submenuStyle: {}, //子菜单位置
data: {}, //选中值数据

  • html
<div class="temp-submenu" ref="submenuRef" v-show="isShowSubMenu" :style="submenuStyle">
	<Icon type="ios-close" class="submenu-close-icon" @click="cancelClick()" />
	<ul>
		<li @click="submenuClick('datadetail')">查看数据明细</li>
	</ul>
</div>
  • js
//子菜单点击事件
submenuClick(name) {
	//菜单点击逻辑
	this.isShowSubMenu = false;
},
//关闭弹框
cancelClick() {
	this.isShowSubMenu = false;
},
  • css
/* 子菜单悬浮框*/
.temp-submenu {
	position: fixed;
	white-space: nowrap;
	z-index: 9999999;
	border-width: 0px;
	border-color: rgb(51, 51, 51);
	color: #000;
	left: 610px;
	top: 97px;
	cursor: pointer;
	background: #39403ba6;
	color: #fff;
	min-height: 100px;

	li {
		list-style: none;
		padding: 5px 10px;
		margin: 0 0 5px 0;
		&:hover {
			background: #27ce88;
		}
	}
	.submenu-close-icon {
		display: inline-block;
		width: 100%;
		text-align: right;
		font-size: 18px;
	}
}
### 如何在 VSCode 中设置或预览 ECharts 项目 要在 Visual Studio Code (VSCode) 中设置并预览 ECharts 项目,可以通过以下方法实现: #### 安装必要的扩展 为了更好地支持 ECharts 开发和预览,建议安装以下扩展: 1. **Markdown Preview Enhanced**: 这是一个强大的 Markdown 预览工具,能够加载 JavaScript 库(如 ECharts),从而实现在 Markdown 文件中嵌入动态图表的功能[^3]。 2. **Live Server**: 提供了一个简单的开发服务器,用于实时刷新网页内容,适合调试 HTML 和 JavaScript。 通过 Extensions Marketplace 搜索上述插件名称进行安装。 --- #### 设置 Markdown Preview Enhanced 支持 ECharts 如果希望直接在 Markdown 文件中使用 ECharts 绘制图表,则需按照如下步骤操作: 1. 在 Markdown 文件的第一行添加 `@import` 声明以引入 ECharts 资源库: ```markdown @import "https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js" ``` 2. 创建一个 `<div>` 元素作为图表容器,并编写初始化脚本。例如: ```html <div id="main" style="width: 600px; height: 400px;"></div> ``` 初始化 ECharts 并配置选项: ```javascript var myChart = echarts.init(document.getElementById('main')); var option = { title: { text: 'ECharts 示例' }, tooltip: {}, legend: { data: ['销量'] }, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; myChart.setOption(option); ``` 3. 使用 Markdown Preview Enhanced 打开文件,点击左侧工具栏中的“Reload”按钮重新加载页面即可看到渲染后的图表效果。 --- #### 如果是基于 HTML 的项目 对于完整的 Web 项目,通常会涉及多个文件(HTML、CSS、JavaScript 等)。此时可采用 Live Server 或其他静态资源服务来运行项目。 ##### 步骤说明 1. 新建一个 HTML 文件,例如 `index.html`,并在其中引入 ECharts 的 CDN 链接: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ECharts Demo</title> <!-- 引入 ECharts --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <h1>我的第一个 ECharts 图表</h1> <div id="chart-container" style="width: 600px; height: 400px;"></div> <script> var chartDom = document.getElementById('chart-container'); var myChart = echarts.init(chartDom); var option = { title: { text: '示例图表' }, tooltip: {}, legend: { data: ['销量'] }, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; myChart.setOption(option); </script> </body> </html> ``` 2. 启动 Live Server:右键单击 `index.html` 文件,在上下文菜单中选择 “Open with Live Server”。浏览器将自动打开此文件,并显示已渲染的 ECharts 图表[^4]。 --- #### 自定义路径映射(可选) 如果你正在构建大型前端项目,可能需要管理复杂的模块依赖关系。可以利用 Path Intellisense 插件配合自定义别名简化路径书写。具体做法是在项目的 `settings.json` 文件中加入类似以下配置: ```json { "alias-skip.mappings": { "@components": "${workspaceFolder}/src/components", "@utils": "${workspaceFolder}/src/utils" } } ``` 这样就可以更轻松地引用本地 JS/CSS 文件或其他资源。 --- ### 总结 无论是简单快速地测试单一图表还是搭建复杂的应用程序环境,都可以借助 VSCode 生态圈内的各种优秀插件完成任务。以上介绍了两种主流方式——一种适用于轻量级文档内嵌场景;另一种则面向标准 HTML 结构化工程实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值