Fabricjs -以编程方式选择对象以立即移动/拖动

Fabricjs - select object programatically for immediate movement/drag

本文关键字:移动 拖动 选择 编程 方式 Fabricjs 对象      更新时间:2023-09-26

我能够使用fabricjs以编程方式选择对象。但是,它的行为与使用鼠标单击选择对象时不同。当鼠标点击时,对象成为焦点,例如,可以拖动它。但是,在程序性选择中,我不能立即移动对象。示例jsfiddle:

http://jsfiddle.net/ThzXM/1/

编程选择:

canvas.setActiveObject(canvas.item(0));

我想最终实现的是:在单击按钮时,一个新的矩形被添加到画布上,用户可以在将其放置在画布上之前移动它-不需要额外的单击。是否有可能以跨浏览器兼容的方式做到这一点?(我知道在一些浏览器中我可以触发鼠标点击事件,但大多数浏览器不允许)

你必须这么做。不要忘记调用setCoords()来更新对象的边界框。

// Set the active element
canvas.setActiveObject(canvas.item(0));
// Set left, o right,or angle... check documentation.
//Don´t forget to call setCoords() after changes.
canvas.item(0).setLeft(80).setCoords(); 
//Then render the canvas
canvas.renderAll()