antvis/G6

edge的drag事件都不生效 #6095

STofone posted onGitHub

Describe the bug / 问题描述

edge的drag事件都不生效

No response

Steps to Reproduce the Bug or Issue / 重现步骤

No response

G6 Version / G6 版本

🆕 5.x

Operating System / 操作系统

Windows

Browser / 浏览器

Chrome, Edge

Additional context / 补充说明

No response


需要 edge:dragenter edge:dragover edge:dragleave

posted by STofone 9 months ago

内置交互默认屏蔽了 edge, 如果需要启用边拖拽,尝试配置 enable: event => event.targetType === 'edge'

posted by Aarebecca 9 months ago

内置交互默认屏蔽了 edge, 如果需要启用边拖拽,尝试配置 enable: event => event.targetType === 'edge'

enable只是配drag-element,直接on的话应该无关吧 而且drag-element的enableElements是写死的['node', 'combo']

import { Graph } from '@antv/g6';

const data = {
  nodes: [
    { id: 'node-1', style: { x: 200, y: 200 } },
    { id: 'node-2', style: { x: 350, y: 120 } },
    { id: 'node-3', style: { x: 450, y: 120 } },
  ],
  edges: [
    {
      id: 'edge-1',
      source: 'node-1',
      target: 'node-2',
    },
    {
      id: 'edge-2',
      source: 'node-2',
      target: 'node-3',
    },
  ],
};

const graph = new Graph({
  container: 'container',
  data,
  edge: {
    type: 'line',
    draggable:true
  },
  behaviors: [{ type: 'drag-element',enable:true }],
});
  graph.on("edge:dragenter", (event) => {
    alert(123);
  });
  graph.on("edge:dragover", (event) => {
    alert(456);
  });
  graph.on("edge:dragleave", (event) => {
    alert(789);
  });

graph.render();

image

posted by STofone 9 months ago

翻了下源码,设置droppable: true搞定了


    edge: {
      type: "line",
      style: {
        droppable: true,
      }
   }
posted by STofone 9 months ago

Fund this Issue

$0.00
Funded

Pull requests