2017-10-28 65 views
0

有没有办法通过使用本地函数或属性来获得FabricJS中上一次移动的增量/距离?假设,当前坐标是100x100。 现在我移动一个元素,它的新坐标是90x120。 因此,增量为-10x20,这就是我需要使用FabricJS函数或原生js代码。FabricJS - 如何让Delta变革?

任何想法? TNX

+0

看起来像左(x)和上(y)坐标 – Durga

+0

Delta =区别差异...但要得到它吗? –

回答

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()中心点坐标,并得到增量使用subtract

+0

我想知道是否有一个本地函数来获取这些。 –

+0

@EugeneVilder你只需要得到左边和上边的区别。那是什么减去函数返回。 – Durga

+0

由于顶部和左侧可以通过属性面板进行配置,而不是通过移动对象,因此我无法使用鼠标事件。 –