【问题标题】:How to animate display table to none or zero height?如何将显示表设置为无高度或零高度?
【发布时间】:2015-08-01 05:07:43
【问题描述】:

collapseTest 类添加到标题时,我正在尝试为标题设置动画。我想出了以下内容:http://jsfiddle.net/robertrozas/atuyLtL0/1/ 感谢@Hackerman 帮助我完成工作。

我想要的是当 collapseTest 类添加到标题时,带有 .top 类的白色 div 应该消失。由于我使用display: table 而不是display: block,因此我无法使用CSS 规则display: none 隐藏包含内容的div。内容不会消失。

我使用以下动画,它适用于display: block,但不适用于table

@-webkit-keyframes pushDown {
    0% {
        height: 50%;
        display: table;
    }
    100% {
        height: 0;
        display: none;
    }
}

我在 div 上用 top 类调用这个:

#header.collapse .top {
    -webkit-animation: pushDown 2s forwards linear;
}

但这并没有按预期工作。有谁知道我做错了什么,为什么类顶部的 div 没有动画隐藏?

【问题讨论】:

    标签: javascript css animation


    【解决方案1】:

    您需要将样式应用于#header .top 及其子项。像这样的:

    #header.collapseTest .top {
        height: 0;
        opacity: 0;
        margin-top: -20px;
        padding: 0;
        -webkit-transition: all 0.8s ease-in-out 0s;
        -moz-transition: all 0.8s ease-in-out 0s;
        -o-transition: all 0.8s ease-in-out 0s;
        transition: all 0.8s ease-in-out 0s;
    }
    
    #header.collapseTest .top * {
        opacity: 0;
        height: 0;    
        margin: 0;
        padding: 0;
        -webkit-transition: all 0.8s ease-in-out 0s;
        -moz-transition: all 0.8s ease-in-out 0s;
        -o-transition: all 0.8s ease-in-out 0s;
        transition: all 0.8s ease-in-out 0s;
    }
    

    在你的小提琴中解析 CSS 是很困难的,因为它似乎比问题示例所需的要多得多。尽管如此,我还是用我的代码更改创建了以下小提琴:http://jsfiddle.net/pbukcne4/

    【讨论】:

    • 感谢您提供的工作示例。您是否还知道在我的示例中将汉堡菜单与其他部分无缝转换的解决方案?
    • 对不起,我不明白你在问什么。汉堡菜单?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多