【发布时间】:2018-03-08 16:42:59
【问题描述】:
我试图构建一个应用程序来响应具有三列布局的 CSS Grid
<div>
<div class="sidebar"><button>collapse list</button></div> // 100px
<div class="list"></div> // 200px
<div class="item-detail"></div> //auto
</div>
当我点击侧边栏上的折叠列表按钮时,我需要隐藏list div并使用滑入和滑出动画展开item-detail div
我尝试在list 和expanded 上添加类hidden 到item-detail
.item-detail.expanded{
grid-column: 2 / -1;
}
.list{
-webkit-animation: slide-in .3s ease-out;
-moz-animation: slide-in .3s ease-out;
}
.hidden {
display: none;
opacity: 0;
}
@-webkit-keyframes slide-in {
0% {
opacity: 0;
-webkit-transform: translateX(-100%);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
}
}
@-moz-keyframes slide-in {
0% {
opacity: 0;
-moz-transform: translateX(-100%);
}
100% {
opacity: 1;
-moz-transform: translateX(0);
}
}
这在显示列表时按预期工作,但在隐藏它时非常突然(无动画),因为display:none 立即发生。如何实现双向动画?
【问题讨论】:
-
您不能为
display属性或CSS-Grid 属性(主要)设置动画。 -
这是否意味着我们没有其他方法可以实现这一目标?
标签: css reactjs css-animations css-grid