今回はハンバーガーメニューが動くスタイルシートをご紹介したいと思います。
マウスオーバーのみのアニメーション、クリックをしてのアニメーションに加えて、スタイルシートとJavaScriptを使ったちょっとしたメニューを作ってみましたのでご参考ください。
マウスオーバーでアニメーションする場合
下記で紹介しているのはマウスが重なるとハンバーガーメニューがアニメーションするコードになります。
See the Pen menu by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
クリックでアニメーションする場合
See the Pen menu_click by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
- 「<input type=”checkbox” id=”menu-toggle” class=”menu-toggle”>」は メニューの開閉をトリガーするためのチェックボックスです。
このチェックボックスは画面に表示されないようにしています(display: none;)。 - 「<label for=”menu-toggle” class=”hamburger-menu”>」は チェックボックスを操作するためのラベルです。
ハンバーガーメニューとして表示されます。 - 「.menu-toggle:checked + .hamburger-menu .bar」は チェックボックスがチェックされた状態をスタイル指定しています。
チェックボックスがチェックされたときに、各バーがアニメーションするようにします。
ちなみにですが、こちらのソースコードにプラスしてJavaScriptなどで制御すればよりアニメーションをした際の動作を細かく制御することも可能です。
[+JavaScript]クリックでメニューが表示される場合
See the Pen menu-opne by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
こちらにはJavaScriptを追加してクリック後にハンバーガーメニューのアイコンを動かしていたり、メニューが表示されるようになってます。
私がフルスクラッチでコーディングする際は基本的にJavaScriptと合わせて作るようにしております。慣れもありますので。
まとめ
今回はスタイルシートを使ってハンバーガーメニューにアニメーションを追加する方法をご紹介しました。
昨今のwebサイトは色々動く要素が多く見た目も賑やかになってきましたね。(個人的に私は苦手ですが…)
全部の要素を動かすのは難しいので、「ちょっとした部分」でアニメーションを少しずつ取り入れて行きたいと思います。みなさんも一緒にいかがでしょうか?