当前位置: 首页 > news >正文

vue中添加原生右键菜单

<divv-show="state.contextMenu.visible"class="context-menu":style="{left: `${state.contextMenu.x}px`,top: `${state.contextMenu.y}px`}"
>

数据结构定义

const state = reactive({contextMenu: {visible: false,x: 0,y: 0,currentItem: null}
});// 新增右键菜单处理函数
const handleContextMenu = (event, item) => {event.preventDefault();state.contextMenu = {visible: true,x: event.clientX,y: event.clientY,currentItem: item};
};const closeContextMenu = () => {state.contextMenu.visible = false;
};onMounted(async () => {document.addEventListener('click', closeContextMenu);    
);

在需要触发的组件中调用

 @contextmenu="handleContextMenu($event, item)"

样式定义

/* 新增右键菜单样式 */
.context-menu {position: fixed;background: white;border: 1px solid #ebeef5;border-radius: 4px;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);z-index: 9999;min-width: 120px;
}.menu-item {padding: 8px 16px;cursor: pointer;display: flex;align-items: center;gap: 8px;
}.menu-item:hover {background-color: #f5f7fa;color: var(--el-color-primary);
}
http://www.dtcms.com/a/267201.html

相关文章:

  • [特殊字符]全面解锁远程运维新时代:CRaxsRat v7.4 工具实用指南(附推荐资源)
  • Oracle 高级 SQL 查询与函数详解:多表连接、子查询、聚合、分析函数
  • 冒泡和快速排序的区别
  • faster_lio 原理及代码
  • 【Oracle专栏】分区表增加分区
  • WPF学习笔记(25)MVVM框架与项目
  • spring-ai-alibaba 1.0.0.2 学习(十二)——聊天记忆扩展包
  • 深度学习的核心理论与技术
  • 11_架构演进:从单体到云原生的蜕变
  • 炸鸡派例程-ADC
  • RabbitMQ 4.1.1初体验-队列和交换机
  • 【AI论文】WorldVLA:迈向自回归动作世界模型
  • 第二章 简单程序设计
  • 盘式制动器的设计+说明书和CAD)【6张】+绛重
  • 一种结合双阶段注意力循环神经网络(DA-RNN)和卷积块注意力模块(CBAM)的滚动轴承故障诊断方法
  • Rust实用案例解析
  • 后端树形结构
  • Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
  • 【爬虫】逆向爬虫初体验之爬取音乐
  • 408第三季part2 - 计算机网络 - 物理层
  • 由coalesce(1)OOM引发的coalesce和repartition理解
  • 3dmax一键烘焙很多张贴图合并成一张贴图插件支持fbx/obj/blender多材质模型合并为一张贴图
  • OneCode自主UI设计体系:架构解析与核心实现
  • web前端面试-- MVC、MVP、MVVM 架构模式对比
  • Vue.js TDD开发深度指南:工具链配置与精细化测试策略
  • 爬虫工程师Chrome开发者工具简单介绍
  • Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
  • 牛客刷题 — 【排序】[NOIP2010] 导弹拦截(排序枚举)
  • 光伏发电园区管理系统 - Three.js + Django 实现方案
  • React Hooks全面解析:从基础到高级的实用指南