gpt4 book ai didi

javascript - 使用groupSVGElements后如何选择子元素

转载 作者:行者123 更新时间:2023-11-29 10:48:23 24 4
gpt4 key购买 nike

我正在将 svg 加载到具有子元素的 Fabric 中。我正在使用 groupSVGElements() 对它们进行分组。

我需要能够选择每个子元素 - 这是一个允许我选择子对象的 onclick 事件。

我把这个 fiddle 放在一起了 http://jsfiddle.net/AnQW5/2/

虽然我可以通过 getObjects 列出该组的子对象,但我无法确定单击了哪个对象。所以:

    canvas.observe('object:selected', function(e) {
console.log(e.target.getObjects());
// ???
});

有什么想法吗?

最佳答案

你可以使用canvas.add.apply 而不是 groupSVGElements,因此您可以:让每个元素都可以操作

var shapesSvg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg version="1.1" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="320" height="240" viewBox="0 0 320 240"><rect id="rect" x="5" y="50" width="100" height="100" style="fill: rgb(255,0,0);"></rect> <circle id="circle" cx="165" cy="100" r="50" style="fill: rgb(0,255,0);"/></svg>';

var canvas = new fabric.Canvas('canvas');

canvas.setHeight($(window).height());
canvas.setWidth($(window).width());


fabric.loadSVGFromString(shapesSvg, function(objects, options) {
canvas.add.apply(canvas, objects);
canvas.renderAll();
});
html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
<canvas id="canvas"></canvas>

关于javascript - 使用groupSVGElements后如何选择子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15046602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com