Создание нового объекта SVGTransform для добавления в SVGTransformList

Я играл с 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 ответ

Решение

Смотрите SVGSVGElement.createSVGTransform.

Пример:

var tfm = svgroot.createSVGTransform();
tfm.setTranslate(x,y);
Другие вопросы по тегам