【Labs】jQueryでツリーメニュー
こんにちは(・∀・)
今回はjQueryでツリーメニューをご紹介します。以前ご紹介しましたアコーディオンメニューのjQueryとコードはほぼ同じです。
サンプル
HTML
Google Hosted LibrariesからjQuery 1.x snippetを<head>
内に読み込みます。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="container">
<div id="content">
<p>jQueryで縦に展開するツリーメニューのサンプルです</p>
<!--content--></div>
<div class="treemenu">
<p class="lv1btn">tree btn</p>
<div class="lv1body">
<p class="lv2btn"><img src="guide.png" alt="">tree btn 2</p>
<div class="lv2body">
<p class="lv3btn"><img src="guide.png" alt="">tree btn 3</p>
<div class="lv3body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p class="lv1btn">tree btn</p>
<div class="lv1body">
<p class="lv2btn"><img src="guide.png" alt="">tree btn 2</p>
<div class="lv2body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p class="lv1btn">tree btn</p>
<div class="lv1body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p class="lv2btn"><img src="guide2.png" alt="">tree btn 2</p>
<div class="lv2body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
</div>
<p class="lv1btn">tree btn</p>
<div class="lv1body">
<p class="lv2btn"><img src="guide2.png" alt="">tree btn 2</p>
<div class="lv2body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
</div>
<p class="lv1btn">tree btn</p>
<div class="lv1body">
<p><img src="guide.png" alt=""><a href="#">link btn</a></p>
<p><img src="guide2.png" alt=""><a href="#">link btn</a></p>
</div>
<p class="lv1btn"><a href="#">link btn</a></p>
<!--treemenu--></div>
<!--container--></div>
CSS
* {
box-sizing: border-box;
}
#container {
width: 960px;
margin: 0 auto;
overflow: hidden;
background: #fff;
}
#content {
float: right;
width: 704px;
text-align: left;
}
#content p {
padding: 10px 20px;
}
.treemenu {
float: right;
width: 256px;
border-right: 1px solid #ccc;
}
/*階層1*/
.treemenu .lv1btn {
cursor: pointer;
padding: 5px 10px;
}
.treemenu .lv1body {
display: none;
padding: 0 10px 5px 10px;
}
.treemenu .lv1body a {
line-height: 2.0;
}
/*階層2*/
.treemenu .lv1body .lv2btn {
cursor: pointer;
padding: 5px 10px 5px 0;
}
.treemenu .lv1body .lv2body {
display: none;
padding: 0 10px 5px 10px;
}
.treemenu .lv1body .lv2body a {
line-height: 2.0;
}
/*階層3*/
.treemenu .lv1body .lv3btn {
cursor: pointer;
padding: 5px 10px 5px 0;
}
.treemenu .lv1body .lv2body .lv3body {
display: none;
padding: 0 10px 5px 10px;
}
.treemenu .lv1body .lv2body .lv3body a {
line-height: 2.0;
}
JavaScript
$(function() {
$(".treemenu .lv1btn,.treemenu .lv1body .lv2btn,.treemenu .lv1body .lv2body .lv3btn").click(function() {
$(this).next().slideToggle(100);
});
});
Result
関連リンク
【Labs】CSSだけでサイズ可変・スマホ対応のツリーメニュー