ハンバーガーメニュー
-3本線が奥行きを持って回転して×に-
See the Pen 5-2-7 3本線が奥行きを持って回転して☓に by 動くWebデザインアイディア帳 (@ugokuweb) on CodePen.
「Result」内のハンバーガーメニューを押して動きを確かめてね!
※CodePenは「.openbtn」というクラス名だと動作しなかったため、.openbtn+数字にしています。解説のクラス名と異なっていますのでご注意ください。
動きを実現する仕組み
jQuery でボタンがクリックされたらクラスを付与する。
クラスが付与されたらCSS のアニメーションでナビゲーションの動きを表現する。
[使用するライブラリ]
* jQuery
※ボタン内の動きとナビゲーション出現を連動させる場合は、「グローバルナビゲーション」のCSSやJavaScriptを参照にしてください(例)https://coco-factory.jp/ugokuweb/move01/5-1-11/
HTMLの書き方
- head終了タグ直前に自作のCSSを読み込みます。
<link rel="stylesheet" type="text/css" href="css/5-2-7.css"> </head>
- body内のハンバーガーメニューを表示させたい場所に以下のHTMLを記載します。
<div class="openbtn"><div class="openbtn-area"><span></span><span></span><span></span></div></div>
- body 終了タグ直前に jQuery、動きを制御する自作のJS の2 つを読み込みます。
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <!--自作のJS--> <script src="js/5-2-7.js"></script> </body>
自作のCSS内の書き方
/*==================================================
5-2-7 3本線が奥行きを持って回転して×に
===================================*/
/*ボタン外側※レイアウトによってpositionや形状は適宜変更してください*/
.openbtn{
/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed+top、rightといった位置をセットで指定*/
position: relative;
background:#83179E;
cursor: pointer;
width: 50px;
height:50px;
border-radius: 5px;
}
/*ボタン内側*/
.openbtn .openbtn-area{
transition: all .4s;
}
.openbtn span{
display: inline-block;
transition: all .4s;/*アニメーションの設定*/
position: absolute;
left: 14px;
height: 3px;
border-radius: 2px;
background: #fff;
width: 45%;
}
.openbtn span:nth-of-type(1) {
top:15px;
}
.openbtn span:nth-of-type(2) {
top:23px;
}
.openbtn span:nth-of-type(3) {
top:31px;
}
/*activeクラスが付与されると
線と周りのエリアが回転して×になる*/
.openbtn.active .openbtn-area{
transform: rotateY(-360deg);
}
.openbtn.active span:nth-of-type(1) {
top: 18px;
left: 18px;
transform: translateY(6px) rotate(-135deg);
width: 30%;
}
.openbtn.active span:nth-of-type(2) {
opacity: 0;
}
.openbtn.active span:nth-of-type(3){
top: 30px;
left: 18px;
transform: translateY(-6px) rotate(135deg);
width: 30%;
}
自作のJS内の書き方
$(".openbtn").click(function () {
$(this).toggleClass('active');
});
この技術を使ったサンプルサイト
バリエーション
を見る
「機能」に関わる
動き一覧
基礎から学びたい方へ
Webサイトの動きを実現する仕組みと
準備について基礎から学びたい方は
下記をまず読み、基本を理解してから
コピペしましょう
Webサイトの動きを
実現する仕組みと準備
書籍情報
紙面だからこそできるまとめ方でコードを説明し、
全体を俯瞰して調べることが出来る構成になっています。
もちろん、パーツのサンプルコードもzipでまとめてダウンロードできます。
購入をしてくださった方には特典がありますので是非チェックしてみてください!