Мой текущий пример SVG анимирован с использованием анимации SVG SMIL:
<?xml version="1.0" encoding="utf-8"?>
<svg height="512px" viewBox="0 0 100 100" width="512px" xmlns="http://www.w3.org/2000/svg">
<g transform="scale(0.8) translate(-0.6, -0.6)">
<g id="spinner">
<path d="M50 15A35 35 0 1 0 74.787 25.213" fill="none" stroke="#19a29c" stroke-width="8px"/>
<path d="M50 0L50 30L66 15L50 0" fill="#19a29c"/>
<animateTransform attributeName="transform" dur="1.5s" from="0 50 50" repeatCount="indefinite" to="360 50 50" type="rotate"/>
</g>
</g>
</svg>
SVG SMIL
анимация не поддерживается IE
, см. - caniuse
Я бы хотел заменить анимационную часть SVG
анимацией CSS
, сделав анимацию более широко поддерживаемой браузерами,- http://caniuse.com/#feat=css-animation
Примечание переводчика:
c какими ограничениями IE
поддерживает анимацию, можно посмотреть по той же ссылке, что дал автор вопроса. См. во вкладке Known issues
. Получается, что практически мало, что поддерживает IE
.
Как я могу заменить следующую анимацию SVG SMIL анимацией CSS?
<animateTransform attributeName="transform" dur="1.5s" from="0 50 50" repeatCount="indefinite" to="360 50 50" type="rotate"/>
Источник
Анимация, выполняемая с помощью SMIL
, представляет собой анимацию вращения, в которой элемент #spinner
поворачивается на 360
градусов каждые 1,5
секунды и имеет бесконечный цикл.
Последние два параметра animateTransform attributeName
svg являются transform-origin
css
, поэтому для создания эквивалента CSS необходимо выполнить следующее:
animation @keyframe
- правило, которое осуществляет вращение
rotate() from 0 deg to 360 deg
. #spinner
, используя свойство
анимации. Установите его продолжительность как 1,5s
, итерацию
сделайте бесконечной и timing function
линейной.animation-name
, animation-duration
, animation-iteration-count
и animation-timing-function
transform-origin
- 50px 50px
для #spinner
#spinner {
animation: rotate 1.5s infinite linear;
transform-origin: 50px 50px;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<svg height="512px" viewBox="0 0 100 100" width="512px" xmlns="http://www.w3.org/2000/svg">
<g transform="scale(0.8) translate(-0.6, -0.6)">
<g id="spinner">
<path d="M50 15A35 35 0 1 0 74.787 25.213" fill="none" stroke="#19a29c" stroke-width="8px" />
<path d="M50 0L50 30L66 15L50 0" fill="#19a29c" />
</g>
</g>
</svg>
Источник
Похожий топик:
Как данный пример анимации CSS сделать на чистом SVG SMIL
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Слева и справа появляются оступы от границ блока до границ браузера
Здравствуйте! Скажите, как сделать так, как в макете? Надпись "Мы хотим сделать этот мир лучше" становится посередине, а нужно как в макете
Для сайта понадобилась адаптивная карусель элементов, взял за основу Swiper последней версии 41+, в итоге получилось так, что в Chrome все блоки одной...
Возможно ли обнулить внутренние отступы у различных тегов? Допустим имеем тег h1, видно, что при больших размерах текста есть верхний и нижний...