antv x6让拖拽控件工具箱悬浮在画布上,工具箱区域鼠标按下不生成节点

项目需求是让工具箱悬浮在画布上,而我们拖拽控件生成节点是Mousedown鼠标按下时就触发的,所以每次我们按下鼠标(拖拽或者单击)都会生成节点,这也就导致我们在工具箱单击时会在工具箱下边生成节点

在这里插入图片描述

写了好多方法,比如mousedown加时间戳同时开启dnd.start拖拽,等到生成节点的时候在validateNode里使用时间间隔判断啊,又或者在mousedown的时候记录一个标志,在Mouseup的时候清除一个标志,延迟多少毫秒再判断标志是否还在,如果还在,证明是拖拽事件再触发dnd.start,但是这两种方法都试了,都有些问题,最后,大佬提示,可以用如下方法实现:

继承Dnd,重写isInsideValidArea方法,把方法改成只要拖拽的节点不离开工具箱区域,就不会在画布上生成节点

dnd类的源码
源码里只定义了验证鼠标是否在可拖拽区域中的方法(自己分析的,反正大概就这么个意思吧哈哈哈哈,如有不对还请各位大佬温柔指正~)

 protected isInsideValidArea(p: Point.PointLike) {
   
    let targetRect: Rectangle
    const targetGraph = this.targetGraph
    const targetScroller = this.targetScroller

    if (targetScroller) {
    // 判断是否支持滚动
      if (targetScroller
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值