html - 如何使@keyframes 从当前属性值开始?

标签 html css web graphics css-animations

我正在尝试通过 css 中的关键帧和动画对 div 应用最小化/最大化效果。虽然普通的非动画效果本身非常简单(我已经添加了它),但关键帧需要一个起点(从{...})让我抓狂!我已经尝试使用一个空的 from 属性,whitout 它和一个虚拟的,不相关的属性(比如不透明度:1,不需要不透明度)或使用所需属性的自动值,但到目前为止我没有运气。所以我的问题是,有没有办法设置关键帧,使其从 div 的当前属性值开始?更具体地说,我可以将一个 div 的宽度和高度从它的当前、通用、宽度和高度扩展到给定的大小吗?

到目前为止我的代码(效果相关代码):

@-webkit-keyframes maxWin{
    from 
    {
        /* width: auto; or width: ; or nothing at all   */
        /* height: auto; or height: ; or nothing at all */
        /* left: auto; or left: ; or nothing at all     */
        /* top: auto; or top: ; ...you know.            */
    }
    to
    {
        width:  100% !important;
        height: 100% !important;
        left: 0px !important;
        top: 0px !important;
    }
}
@-webkit-keyframes minWin
{
    from
    {
        /*width: auto; or width: ;*/
        /*height: auto; or height: ;*/
    }
    to
    {
        width: 200px !important;
        height: 30px !important;
    }
}


....

.maximized
{
    /*width:  100% !important;
    height: 100% !important;
    left:   0px  !important;
    top:    0px  !important;*/ Plain maximize effect. Works.

    -webkit-animation: maxWin 1s normal forwards !important;
    animation: maxWin 1s normal forwards !important;
}
.minimized
{
    /*width:  200px !important;
      height: 30px  !important;*/ Plain minimize effect. Also works.

    -webkit-animation: minWin 1s normal forwards !important;
    animation: minWin 1s normal forwards !important;
}

最佳答案

如果您只是关心设置相对于元素当前状态的结束状态,您需要一个transition 而不是animation

过渡允许您设置所需的结果,然后从元素的当前状态自动推断出关键帧。

例如在下面 - 将 .minimized 类应用于 .window 将减少其大小,仅指定端点。

.window{
   transition: all 250ms ease-in;
   width:  100%;
   height: 100%;
}
.minimized{
   width: 200px !important;
   height: 30px !important;
}

关于html - 如何使@keyframes 从当前属性值开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699059/

相关文章:

html - 如何在网站上播放 .amr 文件?

javascript - 无法在 JavaScript 中连接字符串

html - 对齐嵌套表格中的行和列

html - 如何在其行内垂直对齐文本? (垂直对齐不起作用)

javascript - 如何根据 <span> 元素的宽度将 <span> 元素放置在彼此之下

eclipse - 如何在 Eclipse 中调试在 jetty 上运行的 Web 应用程序?

html - 我们如何在较小的屏幕尺寸下调整(缩小)div 的背景图像

html - CSS 背景图像未显示在元素上

css - bootstrap 4 在中心对齐按钮

mysql - 如何解决使用 hibernate 5 和 mysql 出现 HHH000346 错误?