【发布时间】:2018-04-28 02:26:00
【问题描述】:
我在页面加载时有多个 div 的宽度为零,然后通过关键帧转换(例如)将它们扩展(在页面加载之后)。这些 div 中的每一个都有不同的最终宽度。
@keyframes growN {
from {width: 0px;}
to {width: 21vw;}
}
我想添加第二个动画,在悬停时将 div 进一步扩展(到固定值),并在取消悬停(取消悬停?)时将其设置回其原始(页面加载后动画)宽度。像这样的:
@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 进一步扩展,但在取消悬停时,它会将其返回到其页面加载、动画前值(即 0),并且其页面加载动画再次触发。此外,时间似乎被忽略了。
JSFiddle:https://jsfiddle.net/an1o4brL/3/
【问题讨论】:
标签: html css css-animations