我有一个canvas元素,我用它创建了一个fabric对象。现在,我想动态更改背景颜色。以下内容对我不起作用。
var x;
x = new fabric.Canvas("mycanvas", {
backgroundColor : "#fff",
selection: true
});
x.backgroundColor = "#f00";
背景颜色为白色,不会变为红色。
答案 0 :(得分:19)
您需要在更改属性后渲染画布,因为对象的属性只是属性而不是由事件处理
http://jsfiddle.net/oceog/gDhht/
var canvas = new fabric.Canvas('c',{backgroundColor : "#0ff"});
console.log(canvas);
canvas.backgroundColor="red";
canvas.renderTop();
canvas.add(
new fabric.Rect({ top: 100, left: 100, width: 50, height: 50, fill: '#f55' }),
new fabric.Circle({ top: 140, left: 230, radius: 75, fill: 'green' }),
new fabric.Triangle({ top: 300, left: 210, width: 100, height: 100, fill: 'blue' })
);
canvas.backgroundColor="green";
canvas.renderAll();