代码之家  ›  专栏  ›  技术社区  ›  dlamblin

创建要附加到svgtransformlist的新svgtransform对象

  •  2
  • dlamblin  · 技术社区  · 14 年前

    我在玩火狐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) 我所期望的方法;也不是任何setter。奇怪地 group2.translate.baseVal.getItem(0) 有,但没有可用的克隆或复制方法。

    我一定是在错误地使用构造函数。有人有正确形式的例子吗?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Erik Dahlström    14 年前

    SVGSVGElement.createSVGTransform

    一个例子:

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