react + design创建右键菜单
需要点击弹出右键菜单,直接上代码
-
import { Tree } from "antd"
-
import type { DataNode, TreeProps } from "antd/lib/tree"
-
import React from "react"
-
import { createRoot } from "react-dom/client"
-
-
const treeData: DataNode[] = [
-
{
-
title: "parent 1",
-
key: "0-0",
-
children: [
-
{
-
title: "parent 1-0",
-
key: "0-0-0",
-
disabled: true,
-
children: [
-
{
-
title: "leaf",
-
key: "0-0-0-0",
-
disableCheckbox: true
-
},
-
{
-
title: "leaf",
-
key: "0-0-0-1"
-
}
-
]
-
},
-
{
-
title: "parent 1-1",
-
key: "0-0-1",
-
children: [{ title: <span style={{ color: "#1890ff" }}>sss</span>, key: "0-0-1-0" }]
-
}
-
]
-
}
-
]
-
-
let cmContainer = null // 右键菜单元素
-
const App: React.FC = () => {
-
// 右键显示菜单
-
const handleContextMenu = (event: any, node: any) => {
-
// 父节点
-
const contextMenu = (
-
<div
-
onMouseLeave={() => {
-
cmContainer.style.display = "none"
-
}}
-
>
-
展示右键菜单
-
</div>
-
)
-
renderCm(event, contextMenu)
-
}
-
-
const renderCm = (info, dom) => {
-
if (!cmContainer) {
-
getContainer(dom)
-
}
-
-
// 设置右键菜单的样式
-
Object.assign(cmContainer.style, {
-
position: "absolute",
-
left: `${info.pageX}px`,
-
top: `${info.pageY}px`,
-
bottom: null,
-
display: "block",
-
zIndex: 9999
-
})
-
}
-
-
const getContainer = (dom) => {
-
cmContainer = document.createElement("div")
-
cmContainer.className = "mars-menucontent"
-
document.body.appendChild(cmContainer)
-
-
const rederDom = createRoot(cmContainer)
-
rederDom.render(dom)
-
}
-
-
return (
-
<Tree
-
checkable
-
treeData={treeData}
-
onRightClick={({ event, node }: any) => {
-
handleContextMenu(event, node)
-
}}
-
/>
-
)
-
}
-
-
export default App
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeihek
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01