在 Fabric 对象移动事件中获取 x/y shift
Getting x/y shift in Fabric object move event
在这个 jsFiddle 中,我有一个可以拖动的 Fabric 矩形。我需要知道矩形被水平 (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
})
在这个 jsFiddle 中,我有一个可以拖动的 Fabric 矩形。我需要知道矩形被水平 (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
})