私はこれで少しプッシュする必要があります、私はほとんどそこにいます。
ナビゲーション バーがあり、そのアイテムをクリックするとドロップダウンが表示されます。アイテムをクリックするとドロップダウンが適切に折りたたまれますが、同じアイテムをクリックしてドロップダウンを折りたたむと、ドロップダウンがスライドして戻ってから再び下にスライドします。
このデモを CodePen で作成しました- (このデモは、動作するスクリプトで更新したため、現在動作しています。以下の私の回答を参照してください)。
これは私が使用している基本的な HTML 構造です。
<ul class="dd-container fll">
<li><a href="#">Link 1</a>
<ul class="dropdown second-level-nav">
<li><a href="#">SubLink 1</a></li>
<li><a href="#">SubLink 2</a></li>
<li><a href="#">SubLink 3</a></li>
</ul>
</li>
<li><a href="#">Link 2</a>
<ul class="dropdown second-level-nav">
<li><a href="#">SubLink 1</a></li>
<li><a href="#">SubLink 2</a></li>
<li><a href="#">SubLink 3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a>
<ul class="dropdown second-level-nav">
<li><a href="#">SubLink 1</a></li>
<li><a href="#">SubLink 2</a></li>
<li><a href="#">SubLink 3</a></li>
</ul>
</li>
</ul>
<ul class="dd-container flr">
<li><a href="#">Login</a></li>
<li><a href="#">Cart</a>
<ul class="dropdown second-level-nav">
<li><a href="#">SubLink 1</a></li>
<li><a href="#">SubLink 2</a></li>
<li><a href="#">SubLink 3</a></li>
</ul>
</li>
</ul>
そして、これは私が使用しているスクリプトです:
//Nav bar dropdowns
$('.dd-container li').click(function(){
//Remove class .active from any other <li> and hide any other dropdown that's visible
$(this).parents().find('.active').removeClass('active').find('.dropdown').slideUp();
//Toggle class .active
$(this).toggleClass('active');
//Slide up/down the actual dropdown
$(this).find('.dropdown').stop(true, true).slideToggle();
});
これについてご協力いただきありがとうございます。