2011-11-22 96 views
10

我無法刪除Superfish下拉修復程序的初始延遲。我的客戶希望延遲付款,但不會延遲付款。刪除延遲的Superfish下拉菜單onmouseover,同時保持Hoverintent延遲onmouseout

我有一個純粹的CSS下拉菜單(與Twentyten下拉菜單相同),並將Suckerfish.js應用於此。

這裏是我的代碼:

$('ul#menu-airco-mb-navigatiestructuur').superfish({ 
    delay: 600, 
    autoArrows: false, 
    speed: 'fast' 
}); 

我已經通過the manual of Superfish讀書,但我似乎無法找到什麼觸發初始延遲。也許它與動畫animation: {opacity:'show'}(我似乎無法讓我的頭部左右)有關。

幫助表示讚賞!

回答

13

看來你可能會包括HoverIntent插件。 Superfish的選項之一是「disableHI」。如果將其設置爲「true」,那麼Superfish將不會使用HoverIntent來延遲mouseenter事件。或者如果您不打算在網站的其他地方使用HoverIntent插件,則可以不包含HoverIntent插件。希望這可以幫助。

$('ul#menu-airco-mb-navigatiestructuur').superfish({ 
    delay: 600, 
    autoArrows: false, 
    speed: 'fast', 
    disableHI: true 
}); 

我創建了兩個測試用例。 first one是使用CSS的頁面的簡化版本,the second完全相同,除了我刪除了所有CSS並且只包含Superfish網站上的基本superfish.css。我也將菜單類從'menu'改爲'sf-menu',這樣superfish.css就可以工作。

請注意,我的CSS版本的工作方式就像您希望的那樣,而使用CSS的版本具有您描述的錯誤。我想有一個CSS問題,你可以通過比較我的問題和改變你的問題來更接近地解決問題。我看到的一個區別是,我將子菜單ULs設置爲固定寬度,他們的孩子LIs設置爲100%,而不是。這不是罪魁禍首,但是表明您可以通過將您的CSS與經過嚴格測試的Superfish菜單進行更緊密的對比而受益。希望這可以幫助。

+0

嗨Joel,謝謝你的回答,但我想保持hoverIntent行爲onmouseout,我只想刪除hoverIntent BEFORE(onmouseover)子菜單的顯示。我已經和hoverIntent的創建者談過了,他建議我嘗試編輯Superfish的核心,以去除hoverIntent onmouseover。你對此有何看法?提前致謝。 – maartenmachiels

+0

Superfish通過其「延遲」選項處理鼠標延遲,並留下HoverIntent(如果包含)來處理鼠標懸停事件。disableHI刪除HoverIntent onmouseover,但將「延遲」設置爲600應該仍然保留鼠標延遲。 –

+0

再次感謝。我遵循了你的指示,但顯然沒有成功。你可以看看我在[link] http://mediasoft.chocolata.be上的實現,看看可能是什麼問題? – maartenmachiels

0

你在mouseover上看到的並不是任何延遲,而是實際的動畫運行。

我想你可以刪除動畫。

如果您只對高度進行動畫製作,您可以立即獲得視覺效果,而不透明度會立即出現。

功能明智,可能是但你想要的,不知道關於視覺。

 $('ul#menu-airco-mb-navigatiestructuur').superfish({ 
      delay  : 0, 
      animation : { height:'show' }, 
      speed  : 'fast' 
     }); 
+0

嗨,阿克里,謝謝。現在已經更清晰了一些,但似乎還有一點點延遲。請注意,設置'delay:0'會消除onmouseout延遲,而我只想刪除onmouseOVER上的延遲。在這裏你可以看到我在說什麼:http://mediasoft.chocolata.be/ 你能幫忙嗎? – maartenmachiels