Как преобразовать переход в svg

Я использую атрибут преобразования для перевода/поворота/масштабирования моего элемента SVG, теперь я хотел бы перенести изменения, внесенные в мой элемент, с помощью атрибута преобразования. К сожалению, почему-то не работает

Для теста предположим, что у вас есть следующая разметка:

<button onclick="change()">test</button>
<div>
  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="100%" height="100%"
  viewBox="-1 -1 100 100">
    <g>
      <rect class="rect" x="1" y="1" width="10" height="10" fill="red"  transform="translate(0 0), rotate(0)">
      </rect>
    </g>
  </svg>
</div>

И следующий код:

function change() {
  $('rect').attr('transform', 'translate(10 10), rotate(45)')
}

И следующий css:

.rect {
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}

http://codepen.io/anon/pen/YwOLWx


person Lu4    schedule 04.02.2016    source источник


Ответы (1)


некоторые опечатки в вашем скрипте (без единиц, attr() вместо css()), используйте это

function change() {
  $('rect').css('transform', 'translate(10px, 10px) rotate(45deg)')
}

демонстрация Codepen

person Fabrizio Calderan    schedule 04.02.2016
comment
Это не работает в Edge, работает только встроенный атрибут transform. - person piotr_cz; 25.08.2017