2010-11-17 50 views
2

我在玩firefox 3.6,想單擊時向svg元素添加翻譯;這個元素已經有了其他的翻譯。創建一個新的SVGTransform對象來追加到SVGTransformList中

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)確實有它,但沒有克隆或複製方法可用。我不得不錯誤地使用構造函數。有沒有人有正確的形式的例子?

回答

6

請參閱SVGSVGElement.createSVGTransform

一個例子:

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

謝謝,這似乎是我缺少的部分。 – dlamblin 2010-11-17 21:24:14

相關問題