antvis/G6

如何添加自定义custom 的icon或text? #4611

neolee6053 posted onGitHub

问题描述

请问有什么建议,如何添加自定义custom 的icon或text (在节点上,和canvas的任何地方? image

重现链接

https://codesandbox.io/s/g6-p6fq42?file=/index.js

重现步骤

如上

预期行为

如上

平台

  • 操作系统: [ Windows]
  • 网页浏览器: [Google Chrome]
  • G6 版本: [4.8.15 ]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response


自定义节点里面 addShape('text', { attrs: {...} }) iconfont 使用方式:https://g6.antv.antgroup.com/manual/advanced/iconfont

那个 test 如果不跟随节点并且相对于视觉口固定(不跟随画布缩放拖拽)的,建议写个 dom 浮在上面,挂载方式见:https://g6.antv.antgroup.com/manual/advanced/coordinate-system

posted by Yanyan-Wang almost 2 years ago

自定义节点里面 addShape('text', { attrs: {...} }) iconfont 使用方式:https://g6.antv.antgroup.com/manual/advanced/iconfont

好建议

那个 test 如果不跟随节点并且相对于视觉口固定(不跟随画布缩放拖拽)的,建议写个 dom 浮在上面,挂载方式见:https://g6.antv.antgroup.com/manual/advanced/coordinate-system

因为要让客户可以拖拽test.. 我可能得用节点。。 可是G6没有纯text的节点吧?得自定义?

纯粹参考:(因为现在我们在用vis,正在考虑要不要换去G6,所以在做研究) image https://visjs.github.io/vis-network/examples/network/nodeStyles/shapes.html

posted by neolee6053 almost 2 years ago

把 keyShape 透明度设置为 0 可以看起来只有 label

posted by Yanyan-Wang almost 2 years ago

把 keyShape 透明度设置为 0 可以看起来只有 label

就是说得用自定义节点? 我试了一试,但有error image https://codesandbox.io/s/g6-p6fq42?file=/index.js

posted by neolee6053 almost 2 years ago

addItem 的第一个参数是元素类型哈,可选的就是 'node' | 'edge' | 'combo' ,你这里应该填 'node'

文档:https://g6.antv.antgroup.com/api/graph-func/item#graphadditemtype-model-stack

posted by Yanyan-Wang almost 2 years ago

addItem 的第一个参数是元素类型哈,可选的就是 'node' | 'edge' | 'combo' ,你这里应该填 'node'

文档:https://g6.antv.antgroup.com/api/graph-func/item#graphadditemtype-model-stack

那,不能加自定义的节点? :(

把 keyShape 透明度设置为 0 可以看起来只有 label

那,大大说的这个是普通node? 不是自定义?普通node可以调keyShape 透明度?

posted by neolee6053 almost 2 years ago

可以加自定义节点呀,你这里的自定义节点类型也是 node ,代表的是元素类型,不管什么类型的节点,元素类型都是 node 哈。你就在你的 demo 中把第一个参数改成 'node' 就 ok

posted by Yanyan-Wang almost 2 years ago

可以加自定义节点呀,你这里的自定义节点类型也是 node ,代表的是元素类型,不管什么类型的节点,元素类型都是 node 哈。你就在你的 demo 中把第一个参数改成 'node' 就 ok

啊明白,你说这样。。 好的,谢谢!! onDblClick(ev) { const graph = this.graph; // Add a new node on the canvas this.graph.addItem("node", { x: ev.x, y: ev.y, id: node-${addedTextNodeCount}, // Generate a unique id label: "New text", size: 1, style: { opacity: 0 } }); addedTextNodeCount++; }

posted by neolee6053 almost 2 years ago

Fund this Issue

$0.00
Funded

Pull requests