基本的に、私のクライアントは、画像の上にマウスを置いたときに非表示のナビゲーションを表示したいと考えています。ナビゲーションの上にマウスを置いたときにナビゲーションが非表示にならず、ナビゲーションを離れたときに非表示になるという問題を解決しました。私が遭遇している2つの問題があり、私はうまくいくと思ったさまざまな異なる組み合わせを試しましたが、もちろんそうではありませんでした。2つの問題は次のとおりです。
ナビゲーションをマウスオーバーせずに画像をマウスアウトすると、ナビゲーションを非表示にする必要があります。現時点では、画像をもう一度マウスオーバーするか、ナビゲーションをマウスオーバーするまで、画像は開いたままになります。
2番目の問題は、ナビゲーションを直接マウスオーバーして画像の上にマウスオーバーすると、関数がループしてナビゲーションが非表示になり、ナビゲーションが再び開くことです。slideToggleを表示に変更しようとしましたが、他にも多くの問題が発生します。
現在、コードは私が望むように動作しており、許容できると見なすことができますが、上記の問題を解決する方法を知りたいです。hoverIntentプラグインを使用してマウスの動きを感知し、マウスの速度が低下した場合にのみ機能をトリガーすることを考えましたが、正しく機能させることができませんでした。明らかに、私はjavascriptとjqueryに関しては初心者なので、ご容赦ください。しかし、助けていただければ幸いです。
これが私のコードです
$(document).ready(function(){
$(".nav-body").hide();
$(".nav-head").mouseover(function(){
$(this).next(".nav-body").slideToggle(600);
$(".nav-body").mouseleave(function(){
$(this).hide(700);
});
});
});
これが私のhtmlです:
<p class="nav-head"><img src="/images/face-btn.jpg" /></p>
<div class="nav-body">
<ul><?php wp_list_pages('title_li=&child_of=12&depth=1'); ?></ul>
</div>