フレックスボックスのコンテナに2つのDIVがあり、両方が並んでいます。 divの1つを削除すると、もう一方のdivはコンテナ内の中央になります。2つのフレックスボックスDIVをアニメ化する
私は、アニメーション化されたトランジションをセンタリング/非センタリングから作成する方法を見つけることができないようです。これを行う方法はありますか?
HTML:
<div id='wrap'>
<div id='a'></div>
<div id='b'></div>
</div>
<button id='btna' onclick="toggle('a')">Toggle Red</button>
<br>
<button id='btnb' onclick="toggle('b')">Toggle Green</button>
CSS:
#wrap{
width: 400px;
height: 200px;
border: 1px dashed grey;
display: flex;
justify-content: center;
}
#a{
width: 200px;
height: 200px;
background-color: red;
}
#b{
width: 200px;
height: 200px;
background-color: green;
}
JS:ここ
var displayed = [ true, true ];
function toggle(div)
{
if(div == 'a')
{
if(displayed[0])
{
$('#a').fadeOut(500);
}
else
{
$('#a').fadeIn(500);
}
displayed[0] = !displayed[0];
}
else
{
if(displayed[1])
{
$('#b').fadeOut(500);
}
else
{
$('#b').fadeIn(500);
}
displayed[1] = !displayed[1];
}
}
は、私がこれまで持っているもののためjsfiddleです:
https://jsfiddle.net/uvyLh8m9/6/
を使用して500ミリ秒後に
Element.style.display = 'none';
を呼び出すことができますセンター。彼らは左に揃えます。 –1つしか表示されていない場合、それらを中央に配置します。 – sam
本質的に...いいえ。 'justify-content'はアニメーション化できません。 divの幅を0にアニメートしてから削除する必要があります。 –