【发布时间】:2025-12-06 13:45:01
【问题描述】:
当对元素应用 CSS 缩放变换时,是否可以将 'from' 值设置为当前缩放?
例如,考虑以下 2 个 CSS 关键帧,用于应用单独的增长和收缩动画变换:
@-webkit-keyframes grow
{
from { -webkit-transform: scale(0,0); }
to { -webkit-transform: scale(1,1); }
}
@-webkit-keyframes shrink
{
from { -webkit-transform: scale(1,1); }
to { -webkit-transform: scale(0,0); }
}
这将成功地缩放它应用到的元素,但总是从 0 到 1(反之亦然)。如果在 grow 关键帧完成之前应用了 shrink 关键帧,则它具有在变换开始之前将比例“跳跃”到 0 的效果。
你可以在这个jsFiddle showing CSS scale transform on mouseover看到这个效果
请注意,如果您将鼠标悬停在黑色方块上然后快速将鼠标移出,则缩放变换不平滑。
我基本上追求的是以下内容:
@-webkit-keyframes grow
{
from { -webkit-transform: CURRENT_SCALE; }
to { -webkit-transform: scale(1,1); }
}
【问题讨论】:
-
不可能单独使用 CSS (AFAIK)。 css-tricks.com/… 描述了一些通过 JavaScript 获取当前值的技术,也许你可以适应它。
-
这确实可以使用过渡而不是动画。请参阅jsfiddle.net/G6wME/2 - 从下面的@enguerranws js fiddle 分叉。
标签: html css css-transitions css-transforms