フィドル。
関連コード(フィドルでも注釈付き):
// tooltip positioning on hover and overlay fade on all li's except for submenu items that are not the last child
$("ul:not(.sub-menu) > li, ul.sub-menu > li:last-child").not(":has(ul.sub-menu)").hover(function () {
var $this = $(this),
title = $(this).children("a").data("title"),
posL = $this.offset().left + ($this.width() / 2),
posT = $this.height(),
tooltip = $("#tooltip"),
overlay = $("#overlay");
$this.addClass("over-down");
overlay.stop(true).fadeIn("slow"); // RELEVANT FOR QUESTION
tooltip.stop(true, true).text(title).animate({ // RELEVANT FOR QUESTION
"left": posL - (tooltip.width() / 2),
"top": posT + $this.offset().top + 20
}, 300).fadeIn("fast");
}, function () {
var $this = $(this),
tooltip = $("#tooltip"),
overlay = $("#overlay");
$this.removeClass("over-down");
overlay.stop(true).fadeOut("slow"); // RELEVANT FOR QUESTION
tooltip.stop(true).fadeOut(400); // RELEVANT FOR QUESTION
});
フィドルで、アイテムの上にカーソルを置いてから、しばらく離れて別のアイテムにカーソルを合わせてみてください。スパン#overlay
と同様に、div が部分的にフェードアウトしていることがわかります。#tooltip
私が望むのは、2 つの間のスムーズな遷移であるため、通常、ツールチップとオーバーレイは再び 100% にフェードインする必要がありますが、そうではありません。私はそれをいじっています.stop()
が、何もうまくいかないようです。
この問題は、テストしたすべてのブラウザー (IE10、FF、Chrome) で発生します。