创建一个新的SVGTransform对象以附加到SVGTransformList

时间:2010-11-17 07:10:37

标签: javascript svg

我正在玩firefox 3.6,并希望在点击时为svg元素添加翻译;这个元素已经有了其他翻译。

var svgs = document.getElementsByTagName("svg:svg");
var group = svgs[0].childNodes[1];
group.addEventListener("click",function(e){
    var group2 = group.cloneNode(true);
    group2.setAttribute("transform", group2.getAttribute("transform")+" translate(10,10)");
    svg2.insertBefore(whole2, whole);
},false);

但另一种做setAttribute行的方法是:

group2.translate.baseVal.appendItem(newSVGTransformTranslation);

我遇到困难的是我可以致电

newSVGTransformTranslation =
  new SVGTransform(SVGTransform.SVG_TRANSFORM_TRANSLATE);

但是生成的对象没有我期望的setTranslate(x,y)方法;也没有任何人。奇怪group2.translate.baseVal.getItem(0)确实拥有它,但没有可用的克隆或复制方法。

我必须错误地使用构造函数。有没有人有正确形式的例子?

1 个答案:

答案 0 :(得分:6)

请参阅SVGSVGElement.createSVGTransform

一个例子:

var tfm = svgroot.createSVGTransform();
tfm.setTranslate(x,y);