Javascript 将元素设置为画布中所有层的顶部

Javascript 将元素设置为画布中所有层的顶部,javascript,html5-canvas,konvajs,konvajs-reactjs,Javascript,Html5 Canvas,Konvajs,Konvajs Reactjs,我正在使用KonvaJS创建一个画布,它可以通过“连接”连接“节点”。我创建了两个层,一个节点层和一个连接层。我总是希望在连接层的顶部渲染节点层。因此,它们呈现如下: <Stage> <ConnectionLayer /> <NodeLayer /> </Stage> 这样可以确保始终在连接的顶部渲染节点。我试图在我的连接上添加工具提示,但由于NodeLayer位于connectionLayer的顶部,因此当工具提示位于节点后

我正在使用KonvaJS创建一个画布,它可以通过“连接”连接“节点”。我创建了两个
,一个
节点层
和一个
连接层
。我总是希望在
连接层
的顶部渲染
节点层
。因此,它们呈现如下:

<Stage>
    <ConnectionLayer />
    <NodeLayer />
</Stage>

这样可以确保始终在连接的顶部渲染节点。我试图在我的连接上添加工具提示,但由于
NodeLayer
位于
connectionLayer
的顶部,因此当工具提示位于节点后面时将不会显示

有没有一种方法可以在不改变图层顺序的情况下,从
connectionLayer
中渲染节点顶部的工具提示

  • 如注释中所述,您可以尝试使用HTML作为工具提示,并将其放置在画布顶部的绝对位置上

  • 也可以创建用于显示工具提示的特殊构件,并将其放置在所有构件的顶部:


  • 可以使用HTML显示工具提示、创建通知层,或者告诉节点层呈现工具提示?
    <Stage>
        <ConnectionLayer />
        <NodeLayer />
        {this.state.tooltip && <TooltipLayer />}
    </Stage>
    
    const Tooltip = () => {
    
      const groupRef = React.useRef();
    
      // move it when the component is mounted
      React.useEffect(() => {
         const stage = groupRef.current.getStage();
         const topLayer = stage.children[stage.children.length - 1];
         groupRef.current.moveTo(topLayer);
      }, []);
    
      return <Group ref={groupRef} />
    }