在 Snap.svg 图形上设置 ID 属性

2023-11-23

我在用着Snap.svgAPI 和我需要在 CSS 中选择三个图形以用于样式设计。因此,为了区分它们,我需要给它们一个 ID 或类名。

这就是我创建元素的方式:

var draw = Snap(100, 75);
c = draw.polyline(0,0, 50,75, 100,0, 0,0);
c.attr({
    fill: "black"
});

这是我得到的结果:

<svg height="75" version="1.1" width="100" xmlns="http://www.w3.org/2000/svg">
    <polyline points="0,0,50,75,100,0,0,0" style="" fill="#000000"></polyline>
</svg>

这就是我需要的结果:

<svg id="graphic_1" height="75" version="1.1" width="100" xmlns="http://www.w3.org/2000/svg">
    <polyline points="0,0,50,75,100,0,0,0" style="" fill="#000000"></polyline>
</svg>

Update

我在 GitHub 上提出了一个问题,看起来是这样的在下一个版本中修复。目前,在开发分支上,您可以使用Element.attr:

var draw = Snap(100, 75);
draw.attr({ id: 'graphic_1' });

我将原来的答案留在下面,因为:

  1. 在撰写本文时,这在主(发布)版本中不起作用;和
  2. 所描述的直接访问底层 DOM 节点的技术可能对其他人或使用旧版本 Snap.svg 的人有用。

它没有记录,但在内部 Snap.svg 将 DOM 节点存储在名为的属性中node。因此,您可以像这样设置画布的 ID:

draw.node.id = 'graphic_1';

或者,如果您希望避免未记录的技术,您可以使用所需的 ID 创建一个元素first并直接使用它:

<svg id="graphic_1" xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="75"></svg>
var draw = Snap("#graphic_1");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Snap.svg 图形上设置 ID 属性 的相关文章

随机推荐