Процентное преобразование для SVG не подчиняется в Firefox, только иногда в WebKit

У меня есть SVG-графика рожка мороженого, и я хочу преобразовать шарик с помощью transform-origin из 50% 100% (в центре внизу). Firefox утверждает, что подчиняется (то есть инспектор отмечает правильный transform-origin), но на самом деле трансформируется в верхнем левом углу. Как ни странно, WebKit будет подчиняться только в том случае, если для родительского элемента установлено значение font-size:100%.

Это очень похожие вопросы, но они относятся только к Firefox:

  1. Настройка transform-origin в группе SVG не работает в FireFox< /а>

  2. Как установить начало преобразования в SVG

  3. Transform Origin не работает в Firefox


person Toph    schedule 08.07.2013    source источник
comment
Ошибка, которую вы упомянули в качестве комментария к другим вопросам, не имеет ничего общего с преобразованием-происхождением. Если бы я был на вашем месте, я бы поднял новую ошибку в bugzilla с прикрепленным вашим тестовым набором.   -  person Robert Longson    schedule 08.07.2013
comment
Да, я понял это постфактум, мой плохой... и я это сделаю.   -  person Toph    schedule 08.07.2013
comment
@Toph Я нашел твой отчет об ошибке в bugzilla. Вы можете проголосовать за решение ошибки №923193. На момент написания статьи у него всего 4 голоса.   -  person dotnetCarpenter    schedule 21.05.2014
comment
Предположительно исправлено в Firefox 41 bugzilla.mozilla.org/show_bug.cgi?id=923193 но в Nightly он по-прежнему ведет себя не так, как ожидалось (т.е. как WebKit/Blink).   -  person Toph    schedule 17.06.2015


Ответы (1)


Совсем недавно я столкнулся с той же проблемой; вот как я решил это:

Согласно этой странице SVG-анимации с преобразованиями CSS, основные браузеры просто еще не согласованы в применении transform-origin к элементам SVG. Автор страницы создал платформу анимации JavaScript под названием GSAP и объясняет некоторые из ее transform-origin вычислений в статье. Хотя вы можете сами реализовать математику с помощью JavaScript, чтобы исправить происхождение SVG, я взглянул на GSAP (в частности, на инструмент TweenLite), и в итоге он идеально удовлетворил мои потребности. Если у вас все в порядке с использованием внешней библиотеки на вашем веб-сайте, я бы порекомендовал использовать его инструмент для анимации элементов SVG, поскольку он позволяет последовательно анимировать элементы во всех основных браузерах. Очевидно, что это не предпочтительнее, чем transform-origin, просто работающий как положено, но пока браузеры не обновятся, это было для меня подходящей альтернативой.

person jming    schedule 23.05.2015