ザリガニデザインオフィス

横から出てくるドロワーメニューの作り方

お知らせ:ハンバーガーボタン×ドロワーメニューのテンプレートを作成しました。詳しくはこちら

CSSのtransitionとtranslateを組み合わせます。

クリックすると、横からニュッとメニューが出てくるやつの実装方法です。最近はCSSによりアニメーションのサポートが進み、複雑なjQueryを書かなくても済みます。

上記の記述はメニューの大きさが横幅312px、高さ100%のものですが、こちらはご自身のものに応じて変更してください。ここではこの大きさで話を進めていきます。



大きさ以外のCSSですがposition:fixedとtop:0;right:0で右端のに固定しています。z-indexは1000くらいで優先的に上にくるようにしています。transform:translate(312px)で312px(メニューに大きさの分だけ)右にずらして外に出します。transition:all 0.2sで値の変化にアニメーションをつけます。今回は0.2秒で出てきます。

デフォルトではtranslateでずれているので右端から出ていますがopenのクラス名がつくとtranslateの値が0になります。この312pxから0になる変化を、transitionによって0.2秒の間に段階的に変化させることでアニメーションを実現しています。

クラスを付けたり取ったりするのがjQueryの役目で、クラスbutton_menuをクリックすると、toggleClassによってopenのクラス名を制御しています。

これをアニメーションで×印になるハンバーガーボタンと組合わせるとこのサイトのようなメニューができます。