我有一个导航系统,它在某些元素上具有单级下拉菜单。我已经让它按照我想要的方式工作了,只是当鼠标沿着它移动时很容易掉出导航的底部(这是第二条全宽线下拉与内联项目)。
我需要一种方法来阻止导航在您掉出底部时消失,而不会干扰其他导航项目(这样当您将鼠标悬停在它们上方时,它们仍会立即隐藏导航)。
有没有办法在调用悬停事件时找到您正在鼠标移动的元素?通过这种方式,我可以检测他们是否将鼠标悬停在身体上并启动一个计时器以在 1000 毫秒或其他时间内隐藏导航。
我已经尝试过 hoverIntent 但这对我需要的东西不起作用,因为我无法承受从一个导航项目移动到另一个的延迟......这使得导航非常难以使用!
或者有没有一种方法可以检测它们是否只是使用鼠标位置从导航底部掉了出来?
任何帮助将不胜感激。当前导航的 Jquery 如下。
var navDisplayTimer;
var navDisplayObject;
$("#main-nav > li").addClass("js-enabled");
$("#main-nav > li").hover(function(){
$(this).addClass("hovered");
if ($(this).find("ul").length != 0) {
$(this).parent().stop().animate({borderWidth: "22px"}, 400);
if($(this).parent().css("borderWidth") == "22px 22px 22px 22px") {
$(this).find("ul").show();
} else {
navDisplayObject = this;
navDisplayTimer = setTimeout(function() {
$(navDisplayObject).find("ul").show();
}, 300);
}
}
},function(){
clearTimeout(navDisplayTimer);
$(this).find("ul").hide();
$(this).parent().stop().animate({borderWidth: "2px"}, 400);
$(this).removeClass("hovered");
});