クラスが適用された後に要素の高さをアニメーション化しようとしています。簡略化されたコードは次のとおりです。
HTML
<div class="section">
<div class="panel">
<a href="#" class="toggle">Click</a>
<div class="panel-content">
Some content...
</div>
</div>
</div>
CSS
.section {
position: relative;
width: 500px;
height: 200px;
margin: 100px auto;
background: #ccc;
}
.panel {
width: 65%;
position: absolute;
left: 0;
bottom: 0;
}
.toggle {
display: inline-block;
height: 15px;
background: #ddd;
}
.panel-content {
max-height: 0;
overflow: hidden;
transition: max-height 1s;
}
.active .panel-content {
max-height: 9999px;
}
JS
$(function() {
$('.toggle').on('click', function (e) {
e.preventDefault();
$(this).closest('.panel').toggleClass('active');
});
});
.toggle
リンクをクリックすると、高さをアニメーション化するために要素にactive
クラスが設定されますが、クラスが最初に追加されるとコンテンツがアニメーションなしで表示され、要素が削除されるとアニメーション化を開始するのに 1 秒 (トランジションの期間) かかります。ここでライブ デモを見ることができます: http://codepen.io/javiervd/pen/bLhBa.panel
.panel-content
位置とオーバーフローのプロパティも試してみましたが、うまくいきませんでした。同じ効果を達成する別の方法があるのでしょうか?
前もって感謝します。