Как я могу воспроизвести две CSS-анимации с разной скоростью ?
- Изображение должно вращаться и расти одновременно.
- Вращение будет происходить каждые 2 секунды.
- Рост будет повторяться каждые 4 секунды.
Пример кода:
.image {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 120px;
margin:-60px 0 0 -60px;
-webkit-animation:spin 2s linear infinite;
-webkit-animation:scale 4s linear infinite;
}
@-webkit-keyframes spin {
100% {
transform: rotate(180deg);
}
}
@-webkit-keyframes scale {
100% {
transform: scaleX(2) scaleY(2);
}
}
http://jsfiddle.net/Ugc5g/3388/ - проигрывается только одна анимация (последняя заявленная).
css
css-animations
Дон П
источник
источник
Ответы:
TL; DR
С помощью запятой вы можете указать несколько анимаций, каждая со своими свойствами, как указано в ответе CriticalError ниже.
Пример:
Оригинальный ответ
Здесь есть две проблемы:
# 1
Вторая строка заменяет первую. Итак, не имеет никакого эффекта.
# 2
Оба ключевых кадра применяются к одному и тому же свойству
transform
В качестве альтернативы вы можете обернуть изображение в a
<div>
и анимировать каждое отдельно и с разной скоростью.http://jsfiddle.net/rnrlabs/x9cu53hp/
источник
В случае, если кто-то новый приходит и улавливает эту тему, вы можете указать несколько анимаций - каждая со своими собственными свойствами - с помощью запятой.
Пример:
источник
animation-delay
через кому, см. этот ответВы действительно можете запускать несколько анимаций одновременно, но в вашем примере есть две проблемы. Во-первых, используемый вами синтаксис определяет только одну анимацию. Второе правило стиля скрывает первое. Вы можете указать две анимации, используя следующий синтаксис:
как в этой скрипке (где я заменил "scale" на "fade" из-за другой проблемы, описанной ниже ... Потерпите меня.): http://jsfiddle.net/rwaldin/fwk5bqt6/
Во-вторых, обе ваши анимации изменяют одно и то же свойство CSS (преобразование) одного и того же элемента DOM. Я не верю, что ты сможешь это сделать. Вы можете указать две анимации для разных элементов, возможно, изображения и элемента контейнера. Просто примените одну из анимаций к контейнеру, как в этой скрипке: http://jsfiddle.net/rwaldin/fwk5bqt6/2/
источник
Вы не можете воспроизвести две анимации, поскольку атрибут можно определить только один раз. Скорее, почему бы вам не включить вторую анимацию в первую и не настроить ключевые кадры для правильного выбора времени?
источник
вы можете попробовать что-то вроде этого
установите родительский элемент
rotate
и изображение, чтобыscale
времяrotate
иscale
могло быть другимПоказать фрагмент кода
источник