2012-03-07 14 views
1

我正在嘗試創建類似於此網站導航的效果:http://rogwai.com/。在這個jsFiddle中,我相當接近你。jQuery - 如果光標未輸入任何兄弟節點,只調用鼠標懸停功能

如果你一次把鼠標懸停在一個裏面(即從底部),它工作正常。但是,如果您在每個列表項目中水平滑動,則「追隨者」會在每個項目懸停後返回活動位置或結束的幻燈片。相反,它應該遵循鼠標。

查看在鼠標懸停時執行的代碼是完全可以理解的。我無法理解的是如何讓鼠標完全離開菜單時才返回到活動位置或滑出結束位置。

希望這是有道理的 - 你應該直接從jsFiddle看到問題。

在此先感謝。

+0

你爲我提供的jsFiddle(FF 10.0.2)沒有什麼值得注意的 - 我應該看到的是什麼? – 2012-03-07 15:57:35

+0

你真的使用jQuery 1.2.6嗎? – 2012-03-07 15:59:13

回答

1

您可以做的是將mouseenter零件添加到li中,但將零件放在整個ul上。這樣,只有當您將鼠標移出整個ul時,休假纔會啓動。

http://jsfiddle.net/YZr5b/6/

$('nav.block-system-main-menu ul li:not(.follower)').mouseenter(function() { 
    followerMove($(this)); 
}); 

$('nav.block-system-main-menu ul').mouseleave(function(){ 
    followerMove($active); 
}); 

注意,如果你真的使用jQuery 1.2.6(很舊的),你將需要修改此位爲mouseentermouseleave不存在。

+0

我還有一個建議,雖然它與問題不相關,所以我不會把它放在我的答案中。如果您使用'stop',如下所示:'$('li.follower')。stop()。animate({'如果您快速移動鼠標,您將獲得更平滑的動畫並防止奇怪的行爲 – 2012-03-07 16:05:15

+0

原來像往常一樣做一個非常簡單的解決方案!我實際上並沒有在項目中使用jQuery 1.2.6 - 我一直在試着研究如果之前的問題是由我運行的版本引起的。 – splatio 2012-03-07 16:09:17

相關問題