fabric.js load svg elements
HTML
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="600" height="600" class="c"></canvas>
<div>
<button id="svg-load">Load SVG</button>
<select id="svg-select" size="1">
<option value="svg1">SVG 1</option>
</select>
</div>
<div id="svg1" class="svg" data-url="heart.svg">
<svg id="DEFAULT" xmlns="http://www.w3.org/2000/svg" width="278" height="793" viewBox="0 0 278 793">
<title>piastra</title>
<g id="BOTTOM">
<path d="M171,744h0l3,2h0a3,3,0,1,0-2,4l2-2h0l-3,2h0v8h2v7h-2v6h20l11,2a333,333,0,0,0,213,0l11-2h20v-6h-2v-7h2" transform="translate(-167 0)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.71"/>
</g>
<g id="RIGHT">
<line x1="4" y1="745" x2="4" y2="32" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.71"/>
</g>
<g id="LEFT">
<line x1="278" y1="32" x2="278" y2="761" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.71"/>
</g>
<g id="TOP">
<path d="M171,32h2V25h-2V19h20l11-2a333,333,0,0,1,213,0l11,2h20v6h-2v7h2" transform="translate(-167 0)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.71"/>
</g>
</svg>
</div>
CSS
.canvas-container {
border: 1px solid #999;
}
.svg {
display: none;
}
JavaScript
// Do some initializing stuff
fabric.Object.prototype.set({
transparentCorners: false,
cornerColor: 'rgba(102,153,255,0.5)',
cornerSize: 12,
padding: 5
});
var canvas = window._canvas = new fabric.Canvas('c');
var lineaSX;
var lineaDX;
function loadSVG(id) {
var elem = document.getElementById(id),
svgStr = elem.innerHTML;
fabric.loadSVGFromString(svgStr, function(objects, options) {
for (var i = 0; i < objects.length; i++) {
canvas.add(objects[i]);
}
});
// uncomment this, it works
//canvas.zoomToPoint(new fabric.Point(10, 10), 0.75);
//canvas.renderAll();
}
document.getElementById('svg-load').addEventListener('click', function() {
var elem = document.getElementById('svg-select'),
value = elem.options[elem.selectedIndex].value;
loadSVG(value);
});