如何动画显示:弹性项目上的无/块属性? [复制]

Posted

技术标签:

【中文标题】如何动画显示:弹性项目上的无/块属性? [复制]【英文标题】:How can i animate display: none / block property on flex items? [duplicate] 【发布时间】:2016-03-24 01:15:44 【问题描述】:

有什么方法可以为display: block/none 设置动画吗?

当点击 div1div 4 时 - 我想分别为 div 的 2 和 3 设置动画(最好也实现一些漂亮的过渡),同时将它们保持在 flex .container

到目前为止,我可以为 visibilityopacity 制作动画(但在这种情况下,div '2 和 '3 虽然不可见,但仍会在 .container 内占用空间)或将 display: none 切换为 block(但后来我丢失了transition 个项目)。

我尝试定位内部 div 的 absolute'ly,但随后所有响应都陷入困境......

这里是 CodePen: http://codepen.io/adamTrz/pen/jWOJMj

【问题讨论】:

【参考方案1】:

最好使用 javascript 或 jQuery 来执行此操作,而不是切换到 display:none,而是将元素的 height(或/和 width)设置为 0,然后将它们设置为 display:none

您可能对此页面感兴趣:http://www.impressivewebs.com/animate-display-block-none/ 在 cmets 中已经提出了很多类似的解决方案。

其中一个 cmets 是一个纯 css 解决方案,我认为它接近你想要的:

css

div 
    overflow:hidden;
    background:#000;
    color:#fff;
    height:0;
    padding: 0 18px;
    width:100px;
    -webkit-transition: all .5s ease;
    -moz-transition: all .5s ease;
    transition: all .5s ease;

.animated 
    height:auto;
    padding: 24px 18px;

小提琴:http://jsfiddle.net/catharsis/n5XfG/17/

【讨论】:

谢谢,完全忘记了可以为宽度和高度设置动画:) 优秀答案

以上是关于如何动画显示:弹性项目上的无/块属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

让View具有弹性效果的动画——SpringAnimation

让View跟随状态动起来——StateListAnimator

弹性项目的订单是不是可动画?

属性动画(显示动)

flex弹性盒模型(容器块上的属性)

如何使弹性项目不填充弹性容器的高度? [复制]