var canvas = new fabric.Canvas('canvas1');
$('.add_shape').click(function() {
var cur_value = $(this).attr('data-rel');
if (cur_value != '') {
switch (cur_value) {
case 'rectangle':
var rect = new fabric.Rect({
left: 50,
top: 50,
fill: '#aaa',
width: 50,
height: 50,
opacity: 1,
stroke: '#000',
strokeWidth: 1
});
canvas.add(rect);
canvas.setActiveObject(rect);
break;
case 'circle':
var circle = new fabric.Circle({
left: 50,
top: 50,
fill: '#aaa',
radius: 50,
opacity: 1,
stroke: '#000',
strokeWidth: 1
});
canvas.add(circle);
canvas.setActiveObject(circle);
break;
}
}
});
canvas.on('object:scaling', (e) => {
var o = e.target;
o.strokeWidth = o.strokeWidth;
});
$(".add_text").click(function() {
var add_text = new fabric.IText('Edit Here', {
left: 20,
top: 30,
fontSize: 18,
editable: true
});
canvas.add(add_text);
canvas.setActiveObject(add_text);
});
$('.delete_object').click(function() {
var activeObject = canvas.getActiveObjects();
if (confirm('Are you sure?')) {
canvas.discardActiveObject();
canvas.remove(...activeObject);
}
});
button{
max-resolution: 10px;
height:30px;
}
div{
margin:10px
}
.delete_object{
background-color:red;
color:white
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<div>
<button class="add_shape" data-rel="circle">Add Circle</button>
<button class="add_shape" data-rel="rectangle">Add Rectangle</button>
<button class="add_text">Add Text</button>
<button class="delete_object">Delete</button>
</div>
<canvas id="canvas1" width="600" height="300" style="border:1px solid #000000;"></canvas>