jQueryとCSS(そして明らかにHTML)を使用して、展開/折りたたみ効果のあるメニューを作成しました
トリックでトランジションにCSSを使用してmax-height
います(現時点でCSSでできることは本当に素晴らしいです)
いずれにせよ、親メニュー項目をクリックすると、展開してその子が表示され、同時に他の展開されたリストが閉じられます。これは完全に機能しますが、ジャンプ効果が発生し、その下の要素がシフトします。
これを特にうまく説明しているかどうかわからないので、私が使用しているコードのこのフィドルを参照してください(ここにコードを貼り付けますが、かなりたくさんあります)
ここで明らかな何かが欠けていますか?展開/折りたたみ時に下の要素を微調整しないように CSS を操作する方法はありますか? それとも、この効果を達成するためにあきらめて jQuery を使用する必要がありますか?
編集:達成したいことが明確でない場合は、ここの右側のメニューを参照してください。最初の 2 つの要素を展開してみてください。他の要素がずれることはありません。
EDIT2:興味のある方は、max-height
値を介してシフトが発生しました。デモ用に 100 に設定すると、メニュー項目はシフトしませんが、コンテンツが切り取られ、最小高さが短いということは、メニュー項目を将来はかなり負担になります。
残念ながら、CSS トランジションでは高さを 0 から auto に移行するのと同じくらい簡単なことは不必要に複雑に見えます!