:ここ
.box {
display: none;
opacity: 0;
animation: FadeOut 1s ease-in-out;
&.active {
display: block;
opacity: 1;
animation: FadeIn 1s ease-in-out;
}
}
は "作業" の例です。
注:これはキーフレームアニメーションでは使用できないとは限りませんが、と実際にはと同じではありません。 .active
クラスは即座ので、アニメーションを削除発射する時間がないとデフォルトdisplay:none
は今すぐに適用されているので
あなたCodepenデモが意図したとおりに動作しない理由はあります。
とにかくJqueryを使用しているので、便利な機能を内蔵したfadeToggle
があります。 display:none
があなたの問題の根本であるアニメーション化しようとすると
$('button').on('click', function(e) {
e.preventDefault();
$(this).siblings('.box').fadeToggle(500);
})
* {
box-sizing: border-box;
text-align: center;
}
button {
margin: 30px 0;
border: 1px solid #ccc;
text-align: center;
padding: 1em;
background: none;
box-shadow: none;
}
.box {
margin: 0 auto;
width: 80%;
display: none;
line-height: 100px;
background: #ccc;
border: 1px solid #444;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col">
<button class="toggle-good">Toggle display</button>
<p class="box good">I move nicely!</p>
</div>
あなたが例でわかるように、私はフェードインのためにそれをアニメーション – Mick
とき。 '.box'セレクタで' display:none'を削除すると、アニメーションはスムーズになりますが、ボックスは崩壊しません。 – sniels