jQueryを使ってドロップダウンメニューを実装する方法をご紹介いたします。
ドロップダウンメニューは、マウスホバーすると子メニューが出てくる、よく見かけるナビゲーションですね。
jQueryによるドロップダウンメニューの実装方法
jQueryでドロップダウンメニューを実装するのは、非常に簡単です。
まず、HTMLでは以下のように入れ子のメニューを作成します。
<ul class="dropnav">
<li>
<a href="">MENU1</a>
<ul class="child-menu">
<li><a href="">CHILD MENU1</a></li>
<li><a href="">CHILD MENU2</a></li>
<li><a href="">CHILD MENU3</a></li>
</ul>
</li>
<li><a href="">MENU2</a></li>
<li><a href="">MENU3</a></li>
</ul>
「MENU1」「MENU2」「MENU3」が最初に表示されていて、「MENU1」にマウスホバーすると「CHILD MENU1」「CHILD MENU2」「CHILD MENU3」が出てくるように制御します。
続いて、CSSで子メニューを非表示にしておきます。
.child-menu {
display: none;
}
最後に子メニューをドロップダウンさせるためのスクリプトを記述します。記述場所は</body>の直前でOKです。
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function() {
$("ul.dropnav > li").hover(function() {
$("ul:not(:animated)", this).slideDown();
}, function(){
$("ul.child-menu", this).slideUp();
});
});
</script>
「ul.dropnav > li」の部分で子メニューが存在している要素を指定します。「ul.child-menu」の部分では子メニューを指定します。
これでドロップダウンメニューの完成です。あとはCSSで見た目を整えてください。
もし、メニューをフェードインで表示したい場合は、スクリプトを下記のようにします。
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
<script>
$(function() {
$('ul.dropnav > li').hover(function() {
$(this).find('.child-menu').stop(true).fadeIn(500);
},function() {
$(this).find('.child-menu').fadeOut(300);
});
});
</script>
あとがき
非常に簡単に実装できますので、参考にしていただければ幸いです。
jQueryを使わずにCSSのみでドロップダウンメニューを実装したい場合は、「マウスホバーで開くアコーディオンメニューをCSSのみで実装する方法」をご参照ください。

