2012-07-28 74 views
1

我已經在jquery中構建了一個擴展菜單,它工作正常,但是當我多次快速滾入和滑出菜單時,菜單會振盪並在鼠標移動後保持動畫打開和關閉狀態滾出菜單,這是非常煩人的。這裏有我打開菜單的代碼,非常簡單。停止jQuery擴展菜單'振盪'

$("#links").mouseenter(function(){ 
    $("#linksBody").slideDown(600, "easeOutExpo"); 
}); 

$("#links").mouseleave(function(){ 
    $("#linksBody").slideUp(600, "easeOutExpo"); 
}); 

,這裏是與

http://www.pegbarandgrill.com/blog/

其鏈接右側&目錄菜單中有問題的網站即時通訊。有沒有人知道繞過這個振盪問題的最佳途徑。

謝謝!

回答

1

試試這個:

$("#links").mouseenter(function(){ 
    $("#linksBody").stop(1).slideDown(600, "easeOutExpo"); 
}); 

$("#links").mouseleave(function(){ 
    $("#linksBody").stop(1).slideUp(600, "easeOutExpo"); 
}); 

另一種解決方案是使用插件像hoverIntent

此外,您還可以使用.hover()和簡化這樣的事情:

$("#links").hover(function(){ 
    $("#linksBody").stop(1).slideDown(600, "easeOutExpo"); 
}, 
    function(){ 
    $("#linksBody").stop(1).slideUp(600, "easeOutExpo"); 
}); 

我也想知道easeOutExpo可能會導致您的問題。嘗試沒有它,看看它是否有幫助?

+0

這稍微好一點,但現在我發現菜單一次卡住了,風完成了動畫,除非我通過重新加載頁面來重置它。如果你想看到這個新的代碼是在同一鏈接上,jt – 2012-07-28 12:44:25

+0

查看更新的答案。 – 2012-07-28 13:06:52

+0

我添加了你的更新代碼,它仍然卡住了,即使我嘗試不使用easeOutExpo,你是否也得到了相同的行爲? – 2012-07-28 16:00:17