FabricJS如何在移动对象时捕获对象悬停

问题描述 投票:0回答:2

使用Fabric.js

我想在画布触发mouse:over事件时捕获object:moving事件。那可能吗。似乎一次只能触发一个事件。

[原因我要这样做是当我将形状拖到另一个形状上时我想做“某事”。

谢谢,

hover fabricjs mousemove
2个回答
4
投票

确定,所以我找到了一种方法。尚不确定它是否理想,尤其是画布上是否有很多对象。

基本思想是在移动选定对象时找出哪些对象在当前鼠标位置下/在当前鼠标位置

  • isDropZone:添加到对象以指示其放置区的属性(元数据)。
  • 这里是代码:

canvas.on('object:moving', function (e) {                       
        var objs = canvas.getObjects();
        var mouse = canvas.getPointer(event.e);
        for (var i = 0; i < objs.length; i++) {
            if (objs[i].containsPoint(mouse) && objs[i].isDropZone) {
                console.log("Object is in drop zone");
            }
        }               
    }
});

2
投票

我遇到了相同的问题,我正在使用findTarget方法,该方法基本上可以完成您的工作,但是还正在检查perPixelTargetFind选项之类的内容。如果您正在使用组,它还将遍历组内的对象。

© www.soinside.com 2019 - 2024. All rights reserved.