antvis/G6

节点置底失效问题 #4631

LeaveZzz posted onGitHub

问题描述

想将一个图片节点(大尺寸)作为底图,其他节点、边、combo在其上方显示(不被覆盖)。现在使用toBack()函数置底该图片节点,但是效果不理想,其他节点显示在该图片节点上方,但是边、combo被该节点覆盖。

重现链接

https://codesandbox.io/s/confident-flower-g96wrw?file=/index.js:1338-1346

重现步骤

1、进入页面 2、查看当前页面

预期行为

期望其他节点、边、combo不被该图片节点覆盖。

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]
  • G6 版本: [4.5.1 ... ]

屏幕截图或视频(可选)

pic1 pic2

补充说明(可选)

No response


@LeaveZzz 直接使用给canvas 设置 background 不就可以了嘛,为什么要用一个「图片节点」作为底图,逻辑有点奇怪

posted by pomelo-nwu almost 2 years ago

@LeaveZzz 直接使用给canvas 设置 background 不就可以了嘛,为什么要用一个「图片节点」作为底图,逻辑有点奇怪

抱歉问题没有描述清楚,该图片节点是一张平面室内扫描图,有指定宽高且在g6坐标系中位置固定,滚轮滑动时需要同其他节点一样缩放,给canvas 设置 background不能满足需求。

posted by LeaveZzz almost 2 years ago

有 combo 的图,节点、combo、edge 的前后关系是受控的,所以通过 toBack toFront 都会失效。

如果是一张背景图且需要跟随画布缩放滚动,可以在 graph 的根 group 加图片试试

const bg = graph.getGroup().addShape('image', { attrs: {} }) // 其他配置省略 bg.toBack()

只需要在 graph render 之后加一次

posted by Yanyan-Wang almost 2 years ago

有 combo 的图,节点、combo、edge 的前后关系是受控的,所以通过 toBack toFront 都会失效。

如果是一张背景图且需要跟随画布缩放滚动,可以在 graph 的根 group 加图片试试

const bg = graph.getGroup().addShape('image', { attrs: {} }) // 其他配置省略 bg.toBack()

只需要在 graph render 之后加一次

感谢解答!

posted by LeaveZzz almost 2 years ago

@LeaveZzz 如果有帮助,还望给我们项目点个赞🌟哈

posted by pomelo-nwu almost 2 years ago

Fund this Issue

$0.00
Funded

Pull requests