こんにちは、ヨロと申します。
本日は、アコーディオンメニューの作り方という事で、
今回作るのはこんな感じのもので、黒いボタンをクリックする度にメニューが開閉するタイプのもの。
https://codepen.io/malg_tw/pen/jjqKrp
ただ、ボタンの見た目とかは適当なので、もしデザインの変更をしたいといった場合は、
CSS部分を編集する必要が出てくるので、今回は簡単に、どんな感じにすれば作れるか?といった簡単な説明だけ。
今回使うのは、
・HTML
・CSS
・jQuery
この3つ。
jQueryでアコーディオンメニュー|クリック開閉制御ボタンの作り方
という事で、まずはHTML部分から。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>
<div class="accordion">
<div class="accordion-btn">メニュー</div> <!-- ボタン -->
<ul>
<li><a href="#">メニュー1</a></li>
<li><a href="#">メニュー2</a></li>
<li><a href="#">メニュー3</a></li>
<li><a href="#">メニュー4</a></li>
<li><a href="#">メニュー5</a></li>
</ul>
</div>
<script src="script.js"></script>
</body>
</html>
次にCSS部分。
.accordion { /* ここで全体的なメニューのサイズ */
width: 120px;
height: auto;
text-align: center;
cursor: pointer;
}
.accordion-btn { /* ボタン */
display: inline-block;
background-color: #000;
color: #fff;
padding: 5px 25px;
}
ul, li, a { /* ボタンの中身 */
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
color: #333;
}
li {
padding: 8px 0px 5px 0px;
border-bottom: 1px solid gray;
}
.accordion ul { /* ここで最初はボタンの中身を隠しておく */
display: none;
}
そして最後に、jQuery部分
jQuery( '.accordion' ).on( 'click', function() {
jQuery( '.accordion ul' ).slideToggle();
});
アコーディオンメニュー:それぞれのファイルの説明を簡単に解説
index.html
HTMLファイル内の、
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
ここで、jQueryを読み込む設定に。
style.css
CSS部分に関しては、
.accordion {} ここで全体的なメニューのサイズ
.accordion-btn {} ここでボタンの色や形など
ul, li, a {} ここでメニューを開いた時のボタンの中身
.accordion ul {} の display: none; にする事で、最初はボタンを隠す設定に
そして、ボタンの開閉の処理の内容は「script.js」の中に書いていく。
.accordionをクリックすると、
.accordionのulが、.slideToggle(スライドで開閉されるという意味合い)
今回、ファイルの階層は、
・index.html
・style.css
・script.js
こんな感じで、同じ場所に全てのファイルを置いている。
説明が適当過ぎて申し訳ないけど、今回はこれで終わり。