【发布时间】:2019-08-20 11:54:21
【问题描述】:
我无法让我的单选按钮更改单击时添加到织物画布的对象。每次更改单选按钮时,新的图标颜色都会保持为绿色,它应该已更改为所选颜色。
我正在寻找的行为是,当您选择绿色、黄色或红色单选按钮时,放置在画布上的下一个图标应变为所选颜色。
有什么想法吗?
function iconSet() {
var canvas = new fabric.Canvas('c');
if (document.getElementById("green").checked == true) {
var iconGreen = new fabric.Triangle({
width: 62.5,
height: 50,
originX: 'center',
originY: 'center',
fill: 'green'
});
canvas.add(iconGreen);
canvas.on('mouse:move', function(obj) {
iconGreen.top = obj.e.y - 30;
iconGreen.left = obj.e.x - 10;
canvas.renderAll()
})
canvas.on('mouse:out', function(obj) {
iconGreen.top = -100;
iconGreen.left = -100;
canvas.renderAll()
})
canvas.on('mouse:up', function(obj) {
canvas.add(iconGreen.clone());
canvas.renderAll();
})
} else if (document.getElementById("yellow").checked == true) {
var iconYellow = new fabric.Triangle({
width: 62.5,
height: 50,
originX: 'center',
originY: 'center',
fill: 'yellow'
});
canvas.add(iconYellow);
canvas.on('mouse:move', function(obj) {
iconYellow.top = obj.e.y - 30;
iconYellow.left = obj.e.x - 10;
canvas.renderAll()
})
canvas.on('mouse:out', function(obj) {
iconYellow.top = -100;
iconYellow.left = -100;
canvas.renderAll()
})
canvas.on('mouse:up', function(obj) {
canvas.add(iconYellow.clone());
canvas.renderAll();
})
} else if (document.getElementById("red").checked == true) {
var iconRed = new fabric.Triangle({
width: 62.5,
height: 50,
originX: 'center',
originY: 'center',
fill: 'red'
});
canvas.add(iconRed);
canvas.on('mouse:move', function(obj) {
iconRed.top = obj.e.y - 30;
iconRed.left = obj.e.x - 10;
canvas.renderAll()
})
canvas.on('mouse:out', function(obj) {
iconRed.top = -100;
iconRed.left = -100;
canvas.renderAll()
})
canvas.on('mouse:up', function(obj) {
canvas.add(iconRed.clone());
canvas.renderAll();
})
}
}
canvas {
border: 1px solid #ccc;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.3/fabric.js"></script>
Green<input name="iconType" type="radio" id="green" onclick="iconSet()" /> Yellow
<input name="iconType" type="radio" id="yellow" onclick="iconSet()" /> Red
<input name="iconType" type="radio" id="red" onclick="iconSet()" />
<canvas id="c" width="600" height="600"></canvas>
【问题讨论】:
标签: javascript fabricjs