2010-04-10 45 views
2

我试图做一个基本的下拉菜单与动画和运行到问题,我似乎无法弄清楚如何保持下拉部分打开,直到鼠标树叶。有没有一种简单的方法可以告诉它保持开放?我知道我对.clickme鼠标移出功能的完全错误,因为它会相应地卸载菜单。jQuery的动画鼠标悬停/ mouseout保持下拉菜单可见

如果任何人都可以在这个具体的例子中提供帮助,我会非常感激。

$(document).ready(function() { 

$('.clickme').mouseover(function() { 
    $('#slidebox').animate({ 
     top: '+=160' 
    }, 200, 'easeOutQuad'); 
}); 

$('.clickme').mouseout(function(){ 
    $('#slidebox').animate({ 
     top: '-=160' 
    }, 200, 'easeOutQuad') 
}); 

});

回答

1

这应该让你去没有任何标记的变化:

$('.clickme, #slidebox').hover(function() { 
    $('#slidebox').stop().animate({ top: '30px' }, 200, 'easeOutQuad'); 
}, function() { 
    $('#slidebox').stop().animate({ top: '-130px' }, 200, 'easeOutQuad'); 
}); 

因为你的元素不是父/子关系,更容易把菜单上的绝对位置(其无论如何,在CSS中有130px),所以没有理由不使用它具有绝对位置的事实。给它一个镜头,我测试你的网站,似乎是我想要在菜单中的行为。

+0

谢谢尼克我会给这个镜头。 – 2010-04-10 00:56:47

+0

+1我的解决方案与您的解决方案非常接近,但它有一个令人讨厌的bug ......您的工作确实很好:) – 2010-04-10 01:01:25

+0

理想情况下,我想在长期内将其改为父/子方案吗? – 2010-04-10 01:01:44

1

退房jQuery的hoverIntent

+0

我发布这个哈哈后,我几乎立即就读到了hoverIntent。谢谢! – 2010-04-10 00:56:08

相关问题