是否有办法通过使用本机函数或属性来获取FabricJS中最后一次移动的增量/距离? 假设,当前坐标为100x100。 现在我移动一个元素,它的新坐标是90x120。 因此,delta是-10x20,这是我使用FabricJS函数或本机js代码所需要的。
有什么想法吗? TNX
答案 0 :(得分:0)
var canvas = new fabric.Canvas('c');
var rect = new fabric.Rect({
left: 50,
top: 60,
fill: 'blue',
width: 150,
height: 150,
});
canvas.add(rect);
rect.on('mousedown', rectMouseDown);
rect.on('mouseup', rectMouseUp);
function rectMouseDown(){
this.origPos = this.getCenterPoint();
}
function rectMouseUp(){
delta = this.getCenterPoint().subtract(this.origPos);
console.log(delta.x,delta.y)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.19/fabric.min.js"></script>
<canvas id="c" width="400" height="400"></canvas>
在鼠标按下并向上鼠标移动到对象上,使用getCenterPoint()
获取中心点坐标并使用delta subtract。