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

react 自定义鼠标右键点击事件

功能:鼠标右键点击节点时,出现“复制”功能,点击其他部位,隐藏“复制”;鼠标右键事件的文案,始终在鼠标点击位置的右下方;点击复制,提示复制成功
效果图:在这里插入图片描述
代码:

const [showRight,setShowRight] = useState(false);
const contextMenu = useRef(null); 
const [clickX,setClickX] = useState('0px');
const [clickY,setClickY] = useState('0px');------------<div className='topology-node' onContextMenu={(e)=> handleRight(e)} >这里面是图中的节点,只有右键双击图中节点,才会触发自定义的右键事件功能
</div>------------// 鼠标右键展示的内容,注意这里的样式rightStyle,鼠标右键时菜单的位置(图中“复制”的位置)就是靠这个样式控制的
{showRight&&<div className='right-panel' onClick={handleRightCopy} style={rightStyle}>复制</div>}------------useEffect(()=>{// 监听其他地方的点击事件document.addEventListener('click', _handleClick);
})------------// 事件
const handleRight =(event:any) =>{setShowRight(true)// event.clientX event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标)setClickX(event.clientX);  setClickY(event.clientY);
}
// 右键菜单的位置,加减多少看自己,位置看着舒服就行
const rightStyle = {left:`${clickX + 5}px`,top: `${clickY + 5}px`
}
const _handleClick =(event:any)=>{const wasOutside = !(event.target.contains === contextMenu);// 点击其他位置需要隐藏右键菜单if (wasOutside) setShowRight(false);
}
const handleRightCopy =()=>{console.log('点击了复制');message.success('复制成功')
}

css

// 样式可以自定义
.right-panel{width: 100px;z-index:10;position: fixed;background-color: pink;cursor: pointer;
}
http://www.lryc.cn/news/375682.html

相关文章:

  • make V=1 分析
  • 每天一个数据分析题(三百五十八)-图表决策树
  • HarmonyOS 页面路由(Router)
  • Python 正则表达式语法
  • 计算机专业毕设-校园二手交易平台
  • 微信小程序添加服务类目|《非经营性互联网信息服务备案核准》怎么获取
  • Internet Download Manager ( 极速下载器 ) 序列号注册码 IDM下载器注册机中文激活破解版
  • FPGA - 滤波器 - IIR滤波器设计
  • 练习时长 1 年 2 个月的 Java 菜鸡练习生最近面经,期望25K
  • 计算机跨考现状,两极分化现象很严重
  • leetcode73 矩阵置零
  • 了解 XML HttpRequest 及其在 Web 开发中的应用
  • CPU与GPU的原理不同
  • 嵌入式相关基础
  • 无线麦克风推荐哪些品牌?一文读懂家用无线麦克风哪个牌子好!
  • 构建SOA架构时应该注意的问题
  • 动手学深度学习(Pytorch版)代码实践 -深度学习基础-13Kaggle竞赛:2020加州房价预测
  • 编程输出中间变量:深度解析与实战应用
  • 冒泡排序、选择排序
  • 嵌入式实训day6
  • 产品经理是青春饭吗?终于有了答案!
  • FPGA - 数 - 加减乘除
  • 软件性能测试之负载测试、压力测试详情介绍
  • 科研辅助工具
  • 亿达中国武汉园区入选“武汉市科技金融工作站”及“武汉市线下首贷服务站”
  • Docker配置阿里云加速器(2续)
  • 我用chatgpt写了一款程序
  • Python实现逻辑回归与判别分析--西瓜数据集
  • 课时154:项目发布_手工发布_手工发布
  • 鸿蒙开发 一 (四)、ArkTS开发 --UI篇