Javascript 在结构对象移动事件中获取x/y偏移

Javascript 在结构对象移动事件中获取x/y偏移,javascript,fabricjs,Javascript,Fabricjs,在这里,我有一个可以拖动的织物矩形。我需要知道的是矩形在水平方向(X)和垂直方向(Y)上被拖动了多少 我正在捕获移动事件,但我很难找到X和Y方向的偏移。如何打印从事件中获取的X/Y测量值?请注意,初始位置为x=50,y=50。如果我移动矩形,然后停止,然后再次移动,位移应该相对于x=50,y=50 var canvas = new fabric.Canvas('c'); var coords = new fabric.Textbox("not moved yet", { fontSize:

在这里,我有一个可以拖动的织物矩形。我需要知道的是矩形在水平方向(X)和垂直方向(Y)上被拖动了多少

我正在捕获移动事件,但我很难找到X和Y方向的偏移。如何打印从事件中获取的X/Y测量值?请注意,初始位置为x=50,y=50。如果我移动矩形,然后停止,然后再次移动,位移应该相对于x=50,y=50

var canvas = new fabric.Canvas('c');

var coords = new fabric.Textbox("not moved yet", {
  fontSize: 16,
  width: 300
});

var text = new fabric.Textbox("Drag me", {
  left: 50,
  top: 50,
  width: 100,
  backgroundColor: 'yellow',
});

canvas.add(coords,text);

canvas.on('object:moving', function(e) {
     console.log(e);
     var x = e.target.transform.ex;
     var y = e.target.transform.ey;
     coords.text = 'Moved x = ' + x + ', y = ' + y;
});

您可以自己跟踪更改,只需将初始坐标保存到单独的变量中

let lastX = text.left
let lastY = text.top

canvas.on('object:moving', function (e) {
  const diffX = e.target.left - lastX
  const diffY = e.target.top - lastY
  coords.text = 'Moved x = ' + diffX + ', y = ' + diffY
})

您可以自己跟踪更改,只需将初始坐标保存到单独的变量中

let lastX = text.left
let lastY = text.top

canvas.on('object:moving', function (e) {
  const diffX = e.target.left - lastX
  const diffY = e.target.top - lastY
  coords.text = 'Moved x = ' + diffX + ', y = ' + diffY
})