【发布时间】:2018-12-21 05:09:35
【问题描述】:
我正在尝试使用 CSS 过渡来展开和折叠 div。 div 在单击时展开,并应用过渡,但在折叠时不应用过渡。当 'expand' 类被移除并且 div 恢复到之前的状态时,如何应用过渡?
HTML
<div class="container">
<div class="row">
<div class="collapse">
</div>
<div class="box-2">
</div>
</div>
</div>
JS
var box = document.querySelector('.collapse')
box.addEventListener("click", function(){
box.classList.toggle('expand')
})
CSS
.collapse {
flex: 0 0 50%;
max-width: 50%;
padding: 30px;
background-color: red;
transition: flex 1000ms ease;
}
.expand {
flex: 0 0 66.66667%;
max-width: 66.66667%;
background-color: red;
padding: 30px;
transition: flex 1000ms ease;
}
.box-2 {
flex-basis: 0;
flex-grow: 1;
padding: 30px;
max-width: 100%;
background-color: pink;
}
.container {
max-width: 1040px;
margin-left: auto;
margin-right: auto;
}
.row {
display: flex;
flex-wrap: wrap;
}
JSFiddle 供参考 - http://jsfiddle.net/gmezskwn/30/
【问题讨论】:
-
jsfiddle.net/gmezskwn/34 - 为最大宽度添加了一个过渡,似乎已经修复了它
标签: javascript css animation flexbox