自分でドロップダウンメニューを作ってみたくなったのでやってみた。
そしてできたのがこれ。
いろいろネットで検索してあーでもないこーでもないとやってみた結果こうなりました。
参考 : jQueryでプルダウンメニュー(たった5行で!)
See the Pen ドロップダウンメニュー by かぺ (@kapeking) on CodePen.
一応内容を載せます。
<nav>
<ul>
<li class="navTitle"><a>おっきいタイトルA</a>
<ul class="subList">
<li><a>ちっちゃいタイトル01</a></li>
<li><a>ちっちゃいタイトル02</a></li>
<li><a>ちっちゃいタイトル03</a></li>
<li><a>ちっちゃいタイトル04</a></li>
</ul>
</li>
<li class="navTitle"><a>おっきいタイトルB</a>
<ul class="subList">
<li><a>ちっちゃいタイトル01</a></li>
<li><a>ちっちゃいタイトル02</a></li>
<li><a>ちっちゃいタイトル03</a></li>
<li><a>ちっちゃいタイトル04</a></li>
</ul>
</li>
</ul>
</nav>
ul{
list-style:none;
}
a{
color:#fff;
display:block;
text-decoration:none;
}
nav>ul{
display: flex;
justify-content:space-around;
background:red;
width:500px;
margin:0;
padding:0;
}
.navTitle>a{
margin-right: 20px;
font-size: 18px;
position: relative;
}
.subList{
position: absolute;
background-color: #ff142b;
padding: 0 10px;
z-index: 100;
display: none;
}
.subList li{
padding: 10px;
border-bottom:dashed 1px #fff;
}
.subList li:last-child{
border-bottom: none;
}
$(".navTitle").hover(function(){
$(this).children('ul').slideDown("fast");
}, function() {
$(this).children('ul').slideUp("fast");
});
なんでこれでちゃんと動くのかわからない。
jQueryのhoverがうまく動かなくて、最終的にhoverのとこは参考URLからコピペしてこうなったんですが・・・
slideDownのとこまではわかるけど「},function()・・・」ってどういう意味?
自分的正解
See the Pen ドロップダウンメニュー(if文) by かぺ (@kapeking) on CodePen.
ってif文使うんなら意味わかるんだけど、なんで上のは使わなくても動くの?
jQo.hover( function, function )は構文だった。
さらに調べたらありました。
マウスカーソルが要素内に入ったり出たときの時の処理を設定返値:jQueryオブジェクト
jQo.hover( function, function )
引数に2つのfunctionをとりマウスカーソルが要素内に入ったり出たときの時の処理を設定します。
引用元 : デザイナーにも分かりやすいjQuery入門講座|jQueryの使い方
構文だったんかーい。
意味めっちゃ考えたんに・・・。if文しか知らん自分が悪かった。
ひとつ賢くなったよ。やったね。
更新履歴
コメントより、アニメーションの動きが不十分だったことが発覚。
調べてさらに記事追加しました。
さらにひとつ賢くなりました。コメントありがとうございました。
【jQuery】.hover()を高速移動するとアニメーションが蓄積されてよくわからないことになる問題を解決する