У меня есть несколько div нулевой ширины при загрузке страницы, затем они расширяются (сразу после загрузки страницы) с помощью перехода по ключевому кадру, например (например). Каждый из этих элементов имеет различную конечную ширину.
@keyframes growN {
from {width: 0px;}
to {width: 21vw;}
}
Я хотел бы добавить вторую анимацию, которая еще больше расширяет div (до фиксированного значения) при наведении курсора и возвращает его к исходной ширине (анимация загрузки после страницы) при наведении (un-hover?). Примерно так:
@keyframes hover_grow {
from {width: element.width;}
to {width: 50vw;}
}
Так как есть много div, я бы предпочел не делать математику самостоятельно (отдельная анимация для каждого div, с собственной шириной вместо element.width).
Я пробовал следующее:
bar:hover {
-webkit-animation-name: hover_grow;
-webkit-animation-duration: 0.1s;
-webkit-animation-timing-function: ease-out;
-webkit-animation-direction: alternate;
animation-name: grow;
animation-duration: 1s;
animation-timing-function: ease-out;
animation-direction: alternate;
}
@-webkit-keyframes hover_grow {
from {width: initial;}
to {width: 25vw;}
}
@keyframes hover_grow {
from {width: initial;}
to {width: 25vw;}
}
Это работает при наведении - div расширяется дальше, но при de-hover он возвращает его к загрузке страницы, предварительно настроенному значению анимации (т.е. 0), и анимация загрузки страницы снова запускается. Кроме того, время, кажется, игнорируется.
JSFiddle: https://jsfiddle.net/an1o4brL/3/