【发布时间】:2015-06-19 22:14:57
【问题描述】:
是否可以转换 flexbox 中的项目? 当您单击时,我希望所有项目都折叠,但单击的项目除外。 单击的那个应该使用容器中的所有可用空间。
// only works once!
$(".item").click(function() {
$(".item").not(this).each(function() {
$(this).addClass("collapse");
});
});
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
}
.container {
flex-grow: 1;
flex-shrink: 0;
flex-basis: auto;
display: flex;
flex-direction: column;
height: 100%;
}
.item {
flex-grow: 1;
flex-shrink: 1;
flex-basis: auto;
transition: all 2s;
}
.collapse {
flex-grow: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="item" style="background: red">a</div>
<div class="item" style="background: green">b</div>
<div class="item" style="background: blue">c</div>
<div class="item" style="background: purple">d</div>
</div>
【问题讨论】:
-
你不能将
flex-grow从/到0转换。oli.jp/2010/css-animatable-properties -
谁能告诉我为什么 jQuery 的 animate 方法在这种情况下不起作用?
标签: javascript jquery css css-animations flexbox