【发布时间】:2016-05-16 12:11:39
【问题描述】:
使用以下代码我创建了一个 Fabric 画布
canvas = new fabric.Canvas('canvas');
canvas.setWidth(660);
canvas.setHeight(590);
fabric.Image.fromURL('assets/img/materials/marble.bmp', function(image) {
image.set({
// I need this because the image size and the canvas size could be different
// in this way the image always covers the canvas
width:660,
height:590
});
canvas.setBackgroundImage(image);
});
canvas.renderAll();
画布已创建,但除非我在画布内部单击,否则背景图像不会出现,因为我在画布内部单击时会出现背景。
我在本地机器上工作,应用程序不会在线发布。
你为什么认为我有这个问题?我做错什么了吗?我该如何解决这种行为?
【问题讨论】:
-
尝试在回调中调用
canvas.renderAll()function(image)-fabric.Image.fromURL可能会异步加载图像,因此代码的最后一行会在图像加载之前运行。 -
谢谢,这行得通。作为评论,我无法将您的答案设置为正确的答案。
-
不客气!没关系——有无数这样的问题;它可能会被可以找到链接到的最佳答案的人标记为重复;-)
-
仅供参考,这个问题也与图像对象有关(不仅仅是背景图像)。在回调中使用
canvas.renderAll()的以下解决方案似乎有效。
标签: javascript canvas fabricjs