小提琴。
相关代码(也在小提琴中注释):
// 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
span 也是如此。我想要的是两者之间的平滑过渡,所以通常情况下,工具提示和覆盖应该再次淡入到 100%,但它们没有。我一直在搞砸,.stop()
但似乎没有任何效果。
每个测试的浏览器(IE10、FF、Chrome)都会出现此问题。