jQueryでメガメニューを簡単自作

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

jQueryでプラグインに頼らず、簡単にメガメニューを実装する方法のご紹介です。

プラグインを使わなくても意外と簡単にヌルヌル動くメガメニューを実装できますので、ぜひ試してみてください。

メガメニューのソースコード全文

まずはメガメニューのソースコードを一気に全部ご紹介します。

HTML

CSS

jQuery

 結果(動作サンプル)

以下メニューボタンにマウスを乗せると隠れていたメガメニューがスライドで表示され、マウスを離すと戻るかと思います。

ソースコード解説

上記サンプルのソースコードを解説します。

CSS

①メニューボタン

メニューボタンをCSSのflexを使って3分割の横並びレイアウトにします。

メニューの親要素にposition: relative;を指定することで、メニューの親要素を基準にその下からメガメニューがスライドで表示されるようにします。

②メニューコンテンツ

スライドで表示させるため、初期状態はdisplay: none;で非表示にします。

メガメニューをメニューエリア全体の幅にするためposition: absolute;を指定し、①で指定した親要素と同じ幅にします。

top: 100%;を指定すると、メニューボタンの真下からメガメニューをスライド表示させることができます。

jQuery

①マウスを乗せたら発動

セレクタに指定した要素にマウスを乗せると発動するhoverイベントです。

参考:jQueryのhover()でマウスオーバーの処理

②メニューを表示

マウスを乗せたボタンに連動したメガメニューをスライドで表示させます。

$(this)で乗せたボタンを指定しfind()でその子要素を指定しています。

参考:jQueryの$(this)の使い方(どこを指してるのか?)
参考:find() で子要素、孫要素を取得

stop()はバブリングを防ぐために使っています。

バブリングの詳細は以下のページでご紹介しています。

参考:mouseover()との違い

slideDown()は非表示のメガメニューをスライドさせながら表示させる関数です。

③マウスを離したときの処理も設定

hover()のあとにfunction()をカンマ区切りで繋げることで、マウスを離したときの処理も設定できます。

④マウスを離したときの処理も設定

②の反対の処理でslideUp()を使ってメガメニューをスライドさせながら非表示にしています。

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*