パネル要素に折りたたみ動作を適用しても機能しますが、埋め込みが.panel-body
に適用されているため、アニメーションはパディングで停止してからすぐに高さにスナップします。あなたはcodepenで最も基本的な例で、この出来事を見ることができます:http://codepen.io/FiveSixTwo/pen/NRQLPoブートストラップパネル上で折りたたみ、パディングにより「ジャンプ」が発生する
<div class="container">
<div class="panel panel-default">
<div class="panel-heading" role="button" data-target="#test" data-toggle="collapse">Test Heading<span class="btn-collapse-header glyphicons glyphicons-chevron-up"></span></div>
<div id="test" class="panel-body collapse in" aria-expanded="true">
<p>Laoreet ac, aliquam sit amet justo nunc tempor, metus vel placerat suscipit, orci nisl iaculis eros, a tincidunt nisi odio eget lorem nulla condimentum tempor mattis ut vitae feugiat augue cras ut metus a risus iaculis scelerisque eu ac ante fusce
non varius purus aenean nec magna felis fusce vestibulum.</p>
<p>Laoreet ac, aliquam sit amet justo nunc tempor, metus vel placerat suscipit, orci nisl iaculis eros, a tincidunt nisi odio eget lorem nulla condimentum tempor mattis ut vitae feugiat augue cras ut metus a risus iaculis scelerisque eu ac ante fusce
non varius purus aenean nec magna felis fusce vestibulum.</p>
<p>Laoreet ac, aliquam sit amet justo nunc tempor, metus vel placerat suscipit, orci nisl iaculis eros, a tincidunt nisi odio eget lorem nulla condimentum tempor mattis ut vitae feugiat augue cras ut metus a risus iaculis scelerisque eu ac ante fusce
non varius purus aenean nec magna felis fusce vestibulum.</p>
</div>
</div>
</div>
セミソリューション:
.panel-body {
padding: 0;
p {
padding: 15px 15px 0;
&:last-of-type { padding-bottom: 15px; }
}
}
これはなくて私の全体のアプリ間で動作するつもりはないので、「半ソリューション」でありますデフォルトのパディングをオーバーライドし、レイアウトを破らないようにする追加のCSSがたくさんあります。
理想的には、.panel-body
にパディングを保持して、アニメーションの開始時と終了時に妨害の高さの変化を起こさずにスムーズに崩壊アニメーションを再生したいと考えています。
私はあなたの問題を見ることができるように私のペンのソリューションのCSSをコメントアウトしました。
私は他のdivの中にすべてを置くことが最も簡単だと思っていますが、それはセミソリューションよりはるかに優れていません。私は、グローバルなCSSやJSソリューションを好むだろうが、これまで私は何も思い付いていない。
ブートストラップはいくつかの点では問題ありませんが、使用するほど大きくなり、私のアプリが大きくなればなるほど、私はそれを嫌います。
感謝を使用してください!それが問題を解決します。私のアプリケーション全体に戻ってマークアップを追加することを嫌う限り、これはこれがうまくいく唯一の方法だと思います。私はちょうどそれがより少ないマークアップであり、うまくいくようになるので、パッドを持つdivを追加します。 – sinrise
私はまだこれに取り組んでいます。これがなぜ起こっているのかを理解することは、より良い解決策を見つけ出すのに役立ちます。私はまだマークアップを追加する以上のJSソリューションを好むだろう。 TIA。 – sinrise
@sinrise私は、これが起こった理由は、ブートストラップのjavascriptがあなたが提供していなかった特定のDOM構造を期待していたことをかなり確信しています。 – bassxzero