我写了这个代码淡出导航菜单透明度为50%,当鼠标处于休眠状态:jQuery的鼠标移动淡入/淡出元素取消淡入淡出的元素的鼠标悬停
var hidden, fadenav, dimNav = function() {
hidden = true;
$('#main-nav').animate({'opacity': 0.5}, 200);
};
$('document').ready(function() {
dimNav();
$('body').on('mousemove', function (e) {
if (hidden) {
$('#main-nav').animate({'opacity': 1}, 200);
hidden = false;
}
if (fadenav !== null) {
clearTimeout(fadenav);
}
fadenav = setTimeout(dimNav, 500);
});
});
我想要做的是使它可以在用户将鼠标放在#main-nav
元素上时不会消失。
我曾经尝试这样做无济于事:
$('#main-nav').on('mouseover mouseout', function (e) {
if (e.type === 'mouseover') {
clearTimeout(fadenav);
} else {
fadenav = setTimeout(dimNav, 500);
}
});
没有任何人有任何想法如何做到这一点?
我认为hoverIntent应该可以帮助你http://howne.net/brian/resources/jquery.hoverIntent.html –
hoverIntent会如何帮助我?这与用户无意中将鼠标移离元素或检测用户是否打算悬停在元素上无关。我只需要取消一个元素的鼠标悬停超时,但它不会这样做。 –