Javascript 无法在FabricJS中将图像置于前面

Javascript 无法在FabricJS中将图像置于前面,javascript,fabricjs,Javascript,Fabricjs,我有些麻烦要把FarbicJS元素带到画布的前面 浏览了几次网页后,我发现了以下帖子: 然而,它似乎在我的代码中完全没有效果 编辑:也带来一些其他解决方案,但也没有效果 我可能犯了一个愚蠢的错误,但我不知道在哪里。这是我的代码(至少是相关部分): 控制台中没有错误,所以我认为一切都进行得很顺利,但是文本没有显示出来。或者至少在第一张图片下面 我该怎么办?我不知道为什么,但执行canvas.sendToBack(img),将文本置于图像前面canvas.sendToFront(myText)不会。

我有些麻烦要把FarbicJS元素带到画布的前面

浏览了几次网页后,我发现了以下帖子: 然而,它似乎在我的代码中完全没有效果

编辑:也带来一些其他解决方案,但也没有效果

我可能犯了一个愚蠢的错误,但我不知道在哪里。这是我的代码(至少是相关部分):

控制台中没有错误,所以我认为一切都进行得很顺利,但是文本没有显示出来。或者至少在第一张图片下面


我该怎么办?

我不知道为什么,但执行
canvas.sendToBack(img),将文本置于图像前面<代码>canvas.sendToFront(myText)不会。因此下面的代码将把文本放在图像前面:

var canvas = new fabric.Canvas('fabric');
canvas.backgroundColor = '#ffffff';
canvas.renderAll();

fabric.Image.fromURL("https://placehold.it/200x200", function(img){
    img.left = 0;
    img.top = 0;
    img.width = 200;
    img.height = 200;

    canvas.add(img);
    //Where the magic happens
    canvas.sendToBack(img);
});

var myText = new fabric.Text("SI REGA2", {
    left: 0,
    top: 0,
    selectable: false,
    hasControls: false,
    hasBorders: false,
    fontSize: 20
});
canvas.add(myText);

这个问题早就有了答案,但我想我可以添加更多信息,因为我刚刚开始修补FabricJS

这里看到的行为是由于
fabric.Image.fromURL()
异步工作(回调函数对此进行了提示)。因此,首先将
myText
对象添加到画布,然后再将图像添加到画布

FabricJS根据添加到画布的顺序确定z索引,因此图像与文本重叠是有意义的


查看中的控制台,查看文本是否添加到图像之前,以及
fabric.image.fromURL
回调中是否存在
myText
对象。

是否使用webbrowser的F12?是的,非常棒的工具。在这里,它没有出现,但我尝试了
console.log(myText)
,对象似乎还可以。这就是为什么我认为文本是被添加到画布上的,而图像是被吼叫的。嗯。。。我只能祝你好运了!或提供小的工作样品,以隔离您的错误,原因在中解释。
var canvas = new fabric.Canvas('fabric');
canvas.backgroundColor = '#ffffff';
canvas.renderAll();

fabric.Image.fromURL("https://placehold.it/200x200", function(img){
    img.left = 0;
    img.top = 0;
    img.width = 200;
    img.height = 200;

    canvas.add(img);
    //Where the magic happens
    canvas.sendToBack(img);
});

var myText = new fabric.Text("SI REGA2", {
    left: 0,
    top: 0,
    selectable: false,
    hasControls: false,
    hasBorders: false,
    fontSize: 20
});
canvas.add(myText);