Lorsque j'essaie de multiplier le bye SVG en ligne importé en utilisant la fonction .use, il restitue un élément vide mais la même fonction fonctionne parfaitement avec quelque chose d'aussi simple qu'un rectangle. SVG.js est-il capable de cloner des éléments complexes? HTML:.use ne clone pas les éléments .svg dans SVG.js
<div id="container"></div>
js:
var draw = SVG('container').size(300, 300);
var man = draw.svg('<g><path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M127.86,7.472l-17.996,56.5L127.86,103l17.997-39.027 L127.86,7.472z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#FED000" d="M127.86,54.687l-17.046,53.517l17.046,17.847l17.045-17.847 L127.86,54.687z"/><g><g><path fill-rule="evenodd" clip-rule="evenodd" fill="#222222" d="M153.923,64.133l-0.038-0.017l-6.771-2.073 c-1.072-0.331-2.217,0.239-2.596,1.287L130.27,93.222c-0.818,2.256-4.008,2.256-4.825,0L111.21,63.331 c-0.309-0.847-1.12-1.382-1.977-1.382c-0.205,0-0.414,0.025-0.624,0.095l-6.766,2.073c-8.65,2.877-14.433,10.899-14.433,19.973 v41.332c0,0.416,0.131,0.812,0.346,1.15l14.867,22.618v103.866c0,1.161,0.938,2.098,2.105,2.098h46.269 c1.158,0,2.104-0.937,2.104-2.098V149.188l14.859-22.618c0.232-0.338,0.349-0.734,0.349-1.15V83.978 C168.31,74.95,162.507,66.938,153.923,64.133z"/></g><circle fill-rule="evenodd" clip-rule="evenodd" fill="#FED000" cx="128.204" cy="25.5" r="24.78"/></g></g>');
var rect = draw.rect(50,100).fill("white");
var use1 = draw.use(man).move(20, 20);
var use2 = draw.use(rect).move(51, 51);
https://codepen.io/1GR3/pen/QqYrxE
Je n'ai pas appris comment utiliser les outils graphiques complexes pour recréer des éléments avec des primitives! Oh, quelle dégénérescence ... – 1GR3
Vous pourriez essayer de déposer un bug avec les personnes SVG.js. –
Je suis juste un peu grincheux car il y a 15 ans, je ferais tout cela en un tournemain, tout en un seul endroit et il serait exactement le même dans chaque navigateur qui aurait ce plugin mal installé :) Merci! – 1GR3