为什么添加rect然后设置它的左和顶部会导致一个可选择的'ghost'请保持原来的位置

Why does adding a rect then setting its left and top cause a selectable 'ghost' rect to stay in the old position?

本文关键字:一个 可选择 ghost 原来 位置 设置 然后 rect 添加 为什么 顶部      更新时间:2023-09-26

我是Fabric.js的新手,真的很喜欢它,但是我在http://fabricjs.com/fabric-intro-part-1/上运行教程示例时遇到了奇怪的行为。代码很简单:

  var canvas = new fabric.Canvas('c');
  var rect = new fabric.Rect({left: 0, top: 0, fill: 'red', width: 50, height: 50});
  var text = new fabric.Text('click'nhere', {left: 0, top: 0, fontSize: 14});
  text.set('selectable', false);
  canvas.add(text, rect);
  rect.set({ left: 50, top: 50 });
  canvas.renderAll();
http://jsfiddle.net/r7v43b3y/2/

但似乎有一个bug:运行小提琴,将鼠标悬停在文本上方(不要点击),并注意光标变为十字,表明鼠标下方有一个Fabric对象,即使它已被移动,但Fabric似乎不知道。现在点击文本所在的位置(它是不可选择的),注意你点击的是一个"幽灵"对象——矩形实际上是在其他地方,但是点击它的旧位置会选择它的新位置。这是怎么呢

rect.set({ left: 50, top: 50 });rect.setCoords();后,它会起作用