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