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

元素-标签-复制

标签 | G6 图可视化引擎复制https://g6.antv.antgroup.com/examples/element/label/#copy

Node样式设置与Label

Node样式设置与Label文字超出省略号。

const graph = new Graph({container: 'container',data,node: {style: {x: 200,y: 200,size: 150,labelPlacement: 'center',labelText: (d) => d.data.label,labelWordWrap: true,  // label文字省略号条件1labelMaxWidth: '90%', // label文字省略号条件2labelBackground: true,labelBackgroundFill: '#eee',labelBackgroundFillOpacity: 0.5,labelBackgroundRadius: 4,labelPointerEvents: 'none',labelBackgroundPointerEvents: 'none'}},// ...

【效果图】

tooltip

plugins 的自定义 tooltip ,先看下没有使用getContent的效果,像echart的tooltip。

使用getContent进行自定义,同时添加行间样式,效果如下:

const graph = new Graph({// ...plugins: [{type: 'tooltip',getContent: (e, items)=>{let result = `<h4 style="font-size: 32px;">Node Label:</h4>`items.forEach((item)=>{result += `<p style="margin: 32px 0;">${item.data.label}</p>`})return result}}]
})

点击事件

// 点击事件
graph.on('node:click', (e) => {const node = graph.getNodeData(e.target.id)// 下面这句相当于 const label = node && node.data && node.data.labelconst label = node?.data?.labelconsole.log(e);console.log(node);})

悬停状态

​图形交互​​中控制节点的悬停状态。

// ​​图形交互​​ 中控制节点的 ​​悬停状态(Hover State)
graph.on(NodeEvent.POINTER_ENTER, (e) => {// 当鼠标 ​​移入(悬停)​​ 某个节点时,将该节点的状态设置为 'active'graph.setElementState({ [e.target.id]: 'active' })
})graph.on(NodeEvent.POINTER_OUT, (e) => {// 当鼠标 ​​移出​​ 某个节点时,​​清除该节点的状态​​(恢复默认样式)graph.setElementState({ [e.target.id]: [] })
})

设置node state

const graph = new Graph({container: 'container',data,node: {style: {// ...},// 扩展 设置state// https://g6.antv.antgroup.com/manual/behavior/build-in/click-select#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95state: {// 选中节点状态active: {fill: '#ccc',},},},

【完整代码】

// https://g6.antv.antgroup.com/examples/element/label/#copyimport { Graph, NodeEvent } from "@antv/g6";const data = {nodes: [{id: 'node1',data: {label: 'Click to copy this label which is too long to be displayed.'}}]
}const graph = new Graph({container: 'container',data,node: {style: {x: 200,y: 200,size: 150,labelPlacement: 'center',labelText: (d) => d.data.label,labelWordWrap: true,  // label文字省略号条件1labelMaxWidth: '90%', // label文字省略号条件2labelBackground: true,labelBackgroundFill: '#eee',labelBackgroundFillOpacity: 0.5,labelBackgroundRadius: 4,labelPointerEvents: 'none',labelBackgroundPointerEvents: 'none'},// 扩展 设置state// https://g6.antv.antgroup.com/manual/behavior/build-in/click-select#%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95state: {// 选中节点状态active: {fill: '#ccc',},},},behaviors: ['drag-element'],plugins: [{type: 'tooltip',getContent: (e, items) => {let result = `<h4 style="font-size: 32px;">Node Label:</h4>`items.forEach((item) => {result += `<p style="margin: 32px 0;">${item.data.label}</p>`})return result}}]
})graph.render();// 点击事件
graph.on('node:click', (e) => {const node = graph.getNodeData(e.target.id)// 下面这句相当于 const label = node && node.data && node.data.labelconst label = node?.data?.labelconsole.log(e);console.log(node);// 将 label 的值写入系统剪贴板(复制到剪贴板)navigator.clipboard.writeText(label)alert('copied to clipboard!')})// ​​图形交互​​ 中控制节点的 ​​悬停状态(Hover State)
graph.on(NodeEvent.POINTER_ENTER, (e) => {// 当鼠标 ​​移入(悬停)​​ 某个节点时,将该节点的状态设置为 'active'graph.setElementState({ [e.target.id]: 'active' })
})graph.on(NodeEvent.POINTER_OUT, (e) => {// 当鼠标 ​​移出​​ 某个节点时,​​清除该节点的状态​​(恢复默认样式)graph.setElementState({ [e.target.id]: [] })
})

 项目的创建参考 G6 详细教程,注意,node版本需要:required: { node: '>=18' }

详细教程 | G6 图可视化引擎本教程将引导你从头开始完成一个 G6 图表开发,并在过程中了解和学习 G6 的主要概念。https://g6.antv.antgroup.com/manual/getting-started/step-by-step

相关文章:

  • [Linux] Vim编辑器 Linux输入输出重定向
  • Nginx-5 Nginx 的4层反向代理
  • 【node】Mac m1 安装nvm 和node
  • 64-Oracle Redo Log
  • 示波器测量市电需要隔离变压器
  • langchain从入门到精通(十三)——Runnable组件
  • 提升 RAG 检索质量的 “七种武器”
  • Java面试复习:基础、面向对象、多线程、JVM与Spring核心考点
  • 关于Spring JBDC
  • Unity Addressable使用之检测更新流程
  • 从 Cluely 融资看“AI 协同开发”认证:软件考试应该怎么升级?
  • PaddleOCR + Flask 构建 Web OCR 服务实战
  • 论文笔记:Large language model augmented narrative driven recommendations
  • es向量检索里的efSearchc参数是干嘛用的
  • 装配体镜像阵列与爆炸视图-装配体设计技能(2)
  • Hologres的Table Group和Shard简介
  • 秘塔AI搜索:国产无广告智能搜索引擎,重塑高效信息获取体验
  • c# .netCreateLinkedTokenSource链接令牌,取消信号异步执行
  • 使用模板创建uniapp提示未关联uniCloud问题
  • 考研408《计算机组成原理》复习笔记,第三章(1)——存储系统概念
  • 如何给网站添加客服/常见的营销策略有哪些
  • 异地网站建设公司/搜索引擎优化方法有哪几种
  • 南阳做网站 汉狮公司/怎么让网站快速收录
  • 哪个软件可以做明星视频网站/如何制作一个公司网站
  • 四川省建设网站平台/百度一下的网址
  • 个人做哪方面的网站/seo技术有哪些