私はサイド プロジェクトに Tailwindcss、React、Next.js を使用しています。
画面サイズが tailwind で定義された「sm」サイズに達したときにハンバーガー メニューを表示する、応答性の高いナビゲーション バーを作成しようとしています。
ハンバーガー アイコンをクリックすると、メニューが高さ 0 から最大高さ 40 に遷移するようにします。
以下のコードに些細な何かが欠けているような気がします。これを見ている他の人が私が欠けているものを理解できることを願っています。
navbar.tsx
リーリー
私が試したこと:
height: "height"
を transitionProperty
として tailwind.config.jsoverflow-hidden
クラス名をメニュー クラスに追加しますtransition-all
と transition-[height]
を切り替えます現在の動作: 現在の動作の GIF
私が期待していること:
問題の説明
DOMマウント
コード スニペットによる条件付きレンダリング:
リーリー要素が DOM にマウントされているか、DOM の外部にマウントされていることを示します。トランジションは、要素がマウント/アンマウントされるのと同じフレームでは再生されません。
CSS プロパティの変換
また、メニュー コンテナの条件クラスを使用して、さまざまな CSS プロパティを変更できます。
リーリーmax-h-40
はmax-height: 10rem
に対応し、h-0
はheight: 0
に対応します。これは、max-height
とheight
の 2 つの値の初期値を変更することを意味します。 MDN によると、max-height
の初期値はnone
、height
の初期値はです。 auto
. これらの値は、showMenu
に対して次のように変化します:メニューを表示
最大高さ
######身長######