サイトを構築していて、ドロップダウンのあるメニューがあります。デザインの性質上、現在、マウスがメニュー項目の上にあることを検出しています。関連するサブメニューを表示します。
<div class="menu-responsibility menu-item">
<a class="menu-click" href="<?php echo ($baseURL);?>responsibility" title="Responsibility" ></a>
<div class="sub-responsibility">
<ul class="sub-list">
<li><a href="<?php echo $baseURL; ?>responsibility/social" title="Social Responsibility">Social</a></li>
<li><a href="<?php echo $baseURL; ?>responsibility/environmental" title="Environmental Responsibility">Environmental</a></li>
<li><a href="<?php echo $baseURL; ?>responsibility/philanthropy" title="Philanthropy">Philanthropy</a></li>
</ul>
</div>
</div>
これが私が書いたJSです:
/* NOTE: Visibility was added due to display objects being clickable with 0 opacity. */
$(".menu-click").hover(function () {
$(this).css('visibility', 'visible');
$(this).parent().css('visibility', 'visible');
$(this).parent().fadeTo("fast", 1);
}, function () {
if ($(this).parent().is(':hover')) {
//alert ("hovering");
} else {
$(this).parent().fadeTo("fast", 0);
}
});
$(".menu-click").parent().mouseleave(function () {
$(this).fadeTo("fast", 0, function() {
// this function will called after the opacity animation has completed
$(this).delay(500).css('visibility', 'hidden');
});
});
/*End Sub-Menu Function */
これは、フェードするときにうまく機能しました。しかし、不透明度が 0 で、要素がまだ表示されている場合、要素をクリックすることができ (単に表示されないだけです)、これは受け入れられませんでした。
バグ: ときどき、完全にランダムに、メニュー (および隣接するサブメニュー) のホバー状態の一部が消えることがあります。それらはもはや存在せず、強調表示できません。これは、メニュー項目の上でマウスをすばやく動かすと、メニュー項目の 1 つにランダムに発生します。「結果」メニュー項目がこれを行っている場合、Firebug は次のように表示します。強調表示できなくなります。
<div class="menu-home menu-item">
<div class="menu-services menu-item" style="visibility: hidden; opacity: 0;">
<div class="menu-results menu-item" style="opacity: 0; visibility: hidden;">
<div class="menu-clients menu-item" style="visibility: hidden; opacity: 0;">
<div class="menu-about menu-item" style="opacity: 0; visibility: hidden;">
<div class="menu-responsibility menu-item" style="opacity: 0; visibility: hidden;">
<div class="menu-contact menu-item">
非常に奇妙なバグです。うまくいけば、皆さんが助けてくれます! 私の開発サイトが利用可能で、おそらく役立つでしょう: http://www.kipdo.com
前もって感謝します!