私は各nav li
を1つずつフェードしたいです。ここに私の現在のコードがあります。これはdiv全体を示していますが、少し遅れてそれぞれli
を1つずつフェードインしたいと思います。1つ1つずつliをフェードアップ
$(document).ready(function(){
$("#circleMenuBtn").click(function(){
$("#dropDownMenu").fadeIn(500);
});
});
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li> First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
<li>Fifth</li>
</ul>
</div>
.sub-menu {
position: absolute;
z-index: 1000;
color: #fff;
right: 5px;
display: none;
}
私は一回の反復が、ノー成功に各li
フェードインしようとしているループのために試してみました。アイデアを教えてください。
更新日:Rory McCrossanのコードは完璧です。残念ながら、メニューの外側をクリックするとそのメニューを非表示にするコードと互換性がありません。
$(document).mouseup(function (e) {
var container = $("#dropDownMenu");
if (!container.is(e.target)
&& container.has(e.target).length === 0) {
container.fadeOut(500);
}
});
何が問題になりましたか?私はちょうどJSとJQueryを学ぶようになったので、それが不十分な質問であれば私を許してください。
優れたソリューションを気にし、魔法のように動作します!どうしてメニューを閉じるのに私のコードと矛盾しているのですか? – kulan
具体的には機能しないものはありますか?あなたのコードの見た目から、 '#dropDownMenu'要素をフェードアウトさせることができますが、私のコードは' li'要素だけを消すので、 'mouseup'が起動すると再び要素を見ることができません。あなたのコードでこれを試してください: 'container.find( 'li')。fadeOut(500);' –
これは本当に素晴らしい解決策です! – Olof