antvis/G6

Do you want to work on this issue?

You can request for a bounty in order to promote it!

[v5]怎么在鼠标事件中,判断事件源是哪个子shape呢? #5619

zzjjbbaa posted onGitHub

问题描述

v4记得是可以的,v5事件回调的参数中没发现相关的属性呢

重现链接

重现步骤

预期行为

可以获取事件源是哪个shape

平台

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

屏幕截图或视频(可选)

No response

补充说明(可选)

No response


目前为了简化操作,所以对事件进行了封装,将 target 替换为了对应的元素。这边是什么场景需要获取子 shape 呢,如果确实有需求,后面可以将其加到事件参数中

https://github.com/antvis/G6/blob/84074e6a3721ca5d4546b6c99a61bb29c059b6b6/packages/g6/src/runtime/behavior.ts#L62

posted by Aarebecca about 1 year ago

目前为了简化操作,所以对事件进行了封装,将 target 替换为了对应的元素。这边是什么场景需要获取子 shape 呢,如果确实有需求,后面可以将其加到事件参数中

https://github.com/antvis/G6/blob/84074e6a3721ca5d4546b6c99a61bb29c059b6b6/packages/g6/src/runtime/behavior.ts#L62

好的,谢谢。个人感觉场景还是挺多的,比如点击图元上的子图形进行createEdge;再比如图元上渲染了一些图标或按钮,希望点击不同的子图形会有些不同的响应;

posted by zzjjbbaa about 1 year ago

目前为了简化操作,所以对事件进行了封装,将 target 替换为了对应的元素。这边是什么场景需要获取子 shape 呢,如果确实有需求,后面可以将其加到事件参数中 https://github.com/antvis/G6/blob/84074e6a3721ca5d4546b6c99a61bb29c059b6b6/packages/g6/src/runtime/behavior.ts#L62

好的,谢谢。个人感觉场景还是挺多的,比如点击图元上的子图形进行createEdge;再比如图元上渲染了一些图标或按钮,希望点击不同的子图形会有些不同的响应;

那我后面把这个加上

posted by Aarebecca about 1 year ago

目前为了简化操作,所以对事件进行了封装,将 target 替换为了对应的元素。这边是什么场景需要获取子 shape 呢,如果确实有需求,后面可以将其加到事件参数中 https://github.com/antvis/G6/blob/84074e6a3721ca5d4546b6c99a61bb29c059b6b6/packages/g6/src/runtime/behavior.ts#L62

好的,谢谢。个人感觉场景还是挺多的,比如点击图元上的子图形进行createEdge;再比如图元上渲染了一些图标或按钮,希望点击不同的子图形会有些不同的响应;

那我后面把这个加上

这个可以提高很大的灵活性,万分感谢

posted by zzjjbbaa about 1 year ago

@Aarebecca beta.32中,似乎只有click事件能通过originalTarget判定事件源是哪个子shape;其他的事件,比如drag-start、drag...,事件参数中target和originalTarget都是图元而不是shape

posted by zzjjbbaa about 1 year ago

@Aarebecca drag事件无法获取具体子shape,此问题可以跟进一下吗?

posted by mioxs 10 months ago

@Aarebecca drag事件无法获取具体子shape,此问题可以跟进一下吗?

我的实现方式是结合三个事件:NodeEvent.PointerDownCanvasEvent.PointerMoveCanvasEvent.PointerUp这三个事件,实现node 子图形的拖拽

posted by zzjjbbaa 10 months ago

是g-plugin-dragndrop的问题,通过父节点dispatchEvent获取不到具体子shape。

posted by mioxs 9 months ago

是g-plugin-dragndrop的问题,通过父节点dispatchEvent获取不到具体子shape

等待官方处理 @Aarebecca

posted by zzjjbbaa 9 months ago

@mivui @zzjjbbaa 这边看是可以在 drag 事件中拿到 originalTarget 的呢

<img width="239" alt="image" src="https://github.com/user-attachments/assets/e27477a3-96ee-45aa-80fd-9aa920c35bab">

<img width="307" alt="image" src="https://github.com/user-attachments/assets/e714112e-4f74-4cd4-bbd7-d75e9f7cdbd0">

posted by Aarebecca 9 months ago

还是同样的问题,class为key是根节点图形是可以获取到,例如拖拽节点需要获取port子图形禁止拖拽,完成连线功能。

posted by mivui 9 months ago

能不能提供获取元素实例的API呢。有些场景需要访问到实例.感谢!

posted by North-City 9 months ago

@Aarebecca 此问题还存在 https://github.com/antvis/G/pull/1742

posted by mivui 2 months ago

@Aarebecca drag事件无法获取具体子shape,此问题可以跟进一下吗?

现在的也可以实现;有个小细节,需要给你想要拖拽的shape的属性设置draggable:true;那么graph的drag回调里,就能获取该shape了

posted by zzjjbbaa 2 months ago

@Aarebecca drag事件无法获取具体子shape,此问题可以跟进一下吗?

现在的也可以实现;有个小细节,需要给你想要拖拽的shape的属性设置draggable:true;那么graph的drag回调里,就能获取该shape了

感谢可以抓取到了

posted by mivui 2 months ago

Fund this Issue

$0.00
Funded
Only logged in users can fund an issue

Pull requests