Создание нового объекта SVGTransform для добавления в SVGTransformList - PullRequest
2 голосов
/ 17 ноября 2010

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

6 голосов
/ 17 ноября 2010

См. SVGSVGElement.createSVGTransform .

Пример:

var tfm = svgroot.createSVGTransform();
tfm.setTranslate(x,y);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...