【发布时间】:2015-07-15 18:23:00
【问题描述】:
我是一名开发人员,所以 CSS 不是我的强项,动画绝对不是。
但是,我正在尝试创建一个简单的动画 - 现在在某种程度上可以工作 - 只是不是我需要的:
&:before
{
background-color:rgba(255,255,255,0.3);
height:100%;
transform:scale(0);
width:100%;
}
&:hover, &:focus, &:active
{
&::before
{
.animation(ripple .4s ease-out);
.keyframes(ripple;
{
100%
{
.transform(scale(1));
}
});
}
}
这个想法是,在悬停、聚焦或活动状态下,背景会从中心向外缩放 - 确实如此。
但是,当动画完成 - 并且背景已完全调整大小时,它会返回到其原始状态(消失),同时仍处于悬停状态。
我需要进行哪些更改以确保背景在对焦时仍然可见?
【问题讨论】:
-
尝试添加
animation-fill-mode:forwards以使动画保持其最后一个关键帧的状态。此外,对于这种情况,您最好使用transition而不是animations。 -
@Harry - 就我提出的问题而言,这很好,但是一旦焦点被移除,背景就会消失。是否有可能以与分阶段相同的方式将其反转 - 换句话说,从 1 缩放回 0?
-
是的,我预料到了这一点,这就是
transition提供帮助而不是动画的地方。 Transition 默认提供两种操作,而animation没有。看看this answer 和this one。 -
后者是哈利的最佳选择 - 现在正在工作。如果您想发布作为答案,我会接受。
标签: css transform css-animations