Задать вопрос
@liltrill

Не работает transition в svg inline use при использовании переменной?

Я использую такой код:

<svg class="svg svg_ex-1">
     <use href="sprite/sprite.svg#bit"></use>
</svg>


<symbol id="bit" viewBox="0 0 24 24">
    <path fill="var(--ex-1)" style="transition: 0.4s;" d="long..."/>
</symbol>


:root {
  --ex-1: #ffbd23;
}


&_ex-1 {
    width: 50px;
    height: 50px;

    &:hover {
      --ex-1: #ff6885;
    }
  }


Если не использовать use то все работает отлично, а при использовании use происходит смена цвета без transition. Как заставить анимироваться через переменные?

p.s Простым наследованием fill от use работает плавно с transition, но с переменными нет.
  • Вопрос задан
  • 382 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 2
Moskus
@Moskus
https://stackoverflow.com/questions/51395179/svg-f...

Когда вы используете use, вы изолируете svg от DOM.
Ответ написан
@liltrill Автор вопроса
Вообщем, я так понял браузерам очень лень делать такую реализацию по неизвестным мне причинам, так как с 2016 года работает пример с currentColor - переменная текущего цвета и анимация срабатывает отлично, но кастомные переменные идут мимо, по не понятным мне причинам. Максимальное количество анимированных изменений цветов это 2. Кастомные переменные будут без анимации. Обидно немножко.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы