在 Fabric JS 中更改 Canvas 的背景

Change background of Canvas in Fabric JS

我正在尝试更改 Canvas 的背景。我可以更改 canvas 的背景,但是一旦我点击背景。它重新加载原始背景并且不显示更改后的背景。希望你明白我想说什么。以下是实现更改 select 框上的 background.Based 的代码,图像将加载

HTML

<div id="wrapper">
    <div class="canvas-container" style="float:left;">
        <canvas id="c" width="500" height="500" style="border:1px solid #ccc">     </canvas>
    </div>
</div>

<select id="color" class="styled-select">
    <option value="red">Red</option>
    <option value="green">Green</option>
    <option value="purple">Purple</option>
</select> 

脚本

var canvas = new fabric.Canvas('c');
canvas.setBackgroundImage("red.png", canvas.renderAll.bind(canvas));
$('select#color').on('change', function() {
    var imageName=this.value+".png"
    var canvas = new fabric.Canvas('c');
    canvas.setBackgroundImage(imageName, canvas.renderAll.bind(canvas));
})

欢迎来到 Stack overflow!

你有两次var canvas = new fabric.Canvas('c');。删除最后一个。

要更改背景颜色,您只需要 canvas.backgroundColor 属性:

$('select#color').on('change', function() {
    canvas.backgroundColor = this.value;
    canvas.renderAll();
});

我为此创建了一个 fiddle:http://jsfiddle.net/q6Y6k/15/

希望对您有所帮助。