使用groupSVGElements后如何选择子元素

2024-04-17

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

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

我把这个小提琴放在一起http://jsfiddle.net/AnQW5/2/ 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用groupSVGElements后如何选择子元素 的相关文章

随机推荐

  • 存档的 macOS 应用程序启动时显示空白窗口

    我有一个 macOS 应用程序 其中包含一个 ViewController 可以重命名应用程序窗口并调整其大小 有几个按钮 以及一个在启动时加载默认网页的 WKWebView 该项目本身是一个 xcworkspace 文件 因为它包含用于
  • 对外部程序的非阻塞调用,不会丢失返回码

    当从 Matlab 中启动外部程序 为了简洁起见 我们将其称为 EX 时 我可以这样做 status result system EX exe 它将阻塞直到 EX 返回 或者像这样 status result system start EX
  • 如何在winform和wpf中以编程方式实现鼠标移动、单击、右键单击和按键等?

    如何在 winform 和 wpf 中以编程方式移动鼠标 单击 右键单击和按键等 如果可能的话 请帮我提供代码片段 如果我正确理解你的问题 那么你想真正模拟输入 在这种情况下SendInput是要走的路 从这个链接 http robrely
  • 存储过程中的 SQL case 语句

    我有一个包含 CASE 语句的 SQL Server 存储过程 但是 如果多个条件成立 我需要附加这些值 因此 如果某个特定记录有失效日期 And 超出里程 我希望这两个值都显示在不可归档原因柱子 我将如何实现这一目标 CASE WHEN
  • 查找列表中不常见的元素

    我正在尝试编写一段可以自动分解表达式的代码 例如 如果我有两个列表 1 2 3 4 和 2 3 5 代码应该能够找到两个列表 2 3 中的公共元素 并组合其余的元素元素一起组成一个新列表 即 1 4 5 从这篇文章 如何找到列表交集 htt
  • Perl 6 语法与我认为的不匹配

    我正在做代码出现第 9 天 http adventofcode com 2017 day 9 您坐了一会儿并记录了流的一部分 您的谜题输入 这些字符代表组 开头的序列 并结束于 在一个组内 有零个或多个其他东西 用逗号分隔 要么是另一个组
  • Python 中检查两个冻结集是否相等的时间复杂度

    在网上找不到详细信息 当比较两个冻结集时 Python 是否会迭代其中一个集合中的元素 或者是否检查冻结集的哈希值 因为冻结集是可哈希的 由于参考文档对此没有任何说明 因此它依赖于实现 因此除了查看您正在使用的 Python 版本的源代码
  • Kotlin 中的变量,与 Java 的区别:“var”与“val”?

    我在尝试学习Kotlin https en wikipedia org wiki Kotlin programming language 什么是val var and internalKotlin 与 Java 相比 In Java Rad
  • 在 NSTextField 中输入时过滤 NSTable - 自动选择第一行

    我有一个NSTextView过滤的字段NSTable表作为用户在输入中键入的内容 我已经成功实现了表过滤 现在 我的目标是自动选择第一个结果 表中的第一行 并允许用户在键入搜索查询时使用箭头键在结果之间移动 在表中的结果之间移动时 输入字段
  • 如何在 Windows 上的 Perl 中访问包含空格的路径?

    我正在将 Unix Perl 脚本转换为在 Windows 上运行 我遇到的问题是路径中含有空格 open IN C Program Files MySQL MySQL Server 5 1 bin mysql exe u root ppw
  • 从 App.xaml.cs 导航

    我想将应用程序栏添加到我的应用程序的多个页面 因此 我将应用程序栏定义为应用程序资源 以便它可以被多个页面使用 现在 这些按钮的事件处理程序位于App这里提到的类http msdn microsoft com en us library h
  • 如何确定所选节点是 TreeView 中的子节点还是父节点?

    如何判断所选节点是子节点还是父节点TreeView控制 具体如何实现此类检查取决于您如何定义 子 和 父 节点 但每个都暴露了两个属性TreeNode提供重要信息的对象 The Nodes财产 http msdn microsoft com
  • 如何编写本地化的屏幕键盘

    我必须为我们公司的程序编写一个屏幕键盘 该程序主要用于具有触摸功能的工业PC 我们不能使用windows默认键盘 因为我们不需要键盘上的所有按键 所以我被要求用 C 编写一个自定义的 我已经找到了这个博客 http www siao2 co
  • pandas - 数据框中唯一行出现的数量

    如何计算每个唯一行的出现次数DataFrame data x1 A B A A B A A A x2 1 3 2 2 3 1 2 3 df pd DataFrame data df x1 x2 0 A 1 1 B 3 2 A 2 3 A 2
  • AWS Lambda:无法导入模块

    请原谅我 我对 Lambda 和 Node 都是新手 我正在尝试复制this https gist github com bhberson 7a2847888596e67fd69bgit 使用 AWS IoT 按钮订购披萨 我当前的代码是
  • 根据屏幕尺寸有固定方向

    我在手机上构建了一个 Android 应用程序 现在我要更新该应用程序以支持平板电脑尺寸的屏幕 特别是 Galaxy Tab 10 1 我弄清楚了整个res layout的事情 所以没关系 但是 我构建的应用程序具有固定的屏幕方向Andro
  • iPhone 平台的开源框架/项目 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找适用于 iPhone 平台的开源框架 项目集合 我发现了很多好的框架和资源 例如ASIHTTP
  • 使用 appSettings 配置自定义 Serilog 接收器

    我创建了一个新的 Serilog 自定义接收器 并尝试通过 appSettings 配置它 自定义接收器名为 DiagnosticsBroadcaster 它的 LoggerSinkConfiguration 扩展是 public stat
  • 更新 WooCommerce 产品价格和库存

    我有外部 REST API 我从中构建一个如下所示的数组 arr array 1 gt array code gt 0100686 qty gt 2 price gt 65 22 2 gt array code gt 0100687 qty
  • 使用groupSVGElements后如何选择子元素

    我正在将 svg 加载到具有子元素的 Fabric 中 我使用 groupSVGElements 对它们进行分组 我需要能够选择每个子元素 这是一个 onclick 事件 允许我选择一个子对象 我把这个小提琴放在一起http jsfiddl