如何使用javascript将svg use元素插入svg组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用javascript将svg use元素插入svg组?相关的知识,希望对你有一定的参考价值。
我有一个svg文件,其中包含一个包含单行元素的组。我可以使用use
元素,并在我想要的任何位置制作几个参考副本。但是,我想使用javascript动态添加和删除use
元素。有没有办法使用javascript将我的行的svg use
元素插入到我的组中?
<svg version="1.1" id="ex1-3rds-quarter-s" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="323.333px" height="55.333px" viewBox="0 0 323.333 55.333" enable-background="new 0 0 323.333 55.333"
xml:space="preserve">
<g id="ledgerlines">
<line id="MidCLine1" fill="none" stroke="#000000" stroke-width="0.75" stroke-miterlimit="10" x1="48.09" y1="41.694" x2="57.924" y2="41.694"/>
</g>
</svg>
答案
var svgns = "http://www.w3.org/2000/svg";
var xlinkns = "http://www.w3.org/1999/xlink";
// Get a reference to the <g> element
var g = document.getElementById("ledgerlines");
// Create a <use> element
var use = document.createElementNS(svgns, "use");
// Add an 'href' attribute (using the "xlink" namespace)
use.setAttributeNS(xlinkns, "href", "#MidCLine1");
// Offset the line down by 10
use.setAttribute("y", "10"); // offset = y+10
// Add the <use> to the <g>
g.appendChild(use);
以上是关于如何使用javascript将svg use元素插入svg组?的主要内容,如果未能解决你的问题,请参考以下文章
SVG.js,从使用“use”导入的元素中删除/读取属性“transform”
如何使用 JavaScript 在 <object> 标记内选择 SVG 元素?