У меня есть значок cog, который я хочу вращать по часовой стрелке на 180 градусов при активации (class = "cards__cog cards__cog-active"), а затем вращать еще 180 градусов по часовой стрелке, чтобы вернуться в свое деактивированное состояние (class = "cards__cog cards__cog-inactive"). Я делаю это с React, реагируя на изменение состояния при щелчке по зубцу.
Ниже работает, но мои проблемы:
1) Он анимируется при загрузке страницы (что имеет смысл, поскольку у него есть класс cards__cog-inactive, но какова альтернатива?).
2) Это уродливо и должен быть более легкий путь.
Спасибо
.cards {
&__cog {
position: absolute;
right: 20px;
top: 20px;
width: 10vh;
cursor: pointer;
&-active {
animation: rotate180 1s ease;
animation-fill-mode: forwards;
}
&-inactive {
animation: rotate180to359to0 1s ease;
animation-fill-mode: forwards;
}
}
}
@keyframes rotate180 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(180deg);
}
}
@keyframes rotate180to359to0 {
0% {
transform: rotate(180deg);
}
99% {
transform: rotate(359deg);
}
100% {
transform: rotate(0deg);
}
}