2011-11-22 13 views
10

Ho difficoltà a rimuovere il ritardo iniziale della correzione del menu a discesa Superfish. Il mio cliente desidera un ritardo sumouseout, ma non un ritardo sumouseover.Rimuovi il ritardo del menu a discesa Superfish onmouseover, mantenendo il ritardo di Hoverintent onmouseout

Ho un menu a discesa CSS puro (identico al menu a discesa Twentyten) e sto applicando Suckerfish.js a questo.

Ecco il mio codice:

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

Ho letto attraverso the manual of Superfish, ma io non riesco a trovare ciò che fa scattare il ritardo iniziale. Forse ha qualcosa a che fare con l'animazione animation: {opacity:'show'} (che non riesco a capire).

L'assistenza è apprezzata!

risposta

13

Sembra che potresti includere il plug-in HoverIntent. Una delle opzioni di Superfish è "disableHI". Se si imposta su "true", Superfish non utilizzerà HoverIntent per ritardare l'evento mouseenter. Oppure potresti semplicemente non includere il plugin HoverIntent se non hai intenzione di usarlo altrove sul sito. Spero che questo ti aiuti.

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

Ho creato due casi di test. Il first one è una versione semplificata della tua pagina usando il tuo CSS e lo the second è esattamente lo stesso eccetto che ho rimosso tutti i tuoi CSS e incluso solo il superfish.css di base trovato sul sito web di Superfish. Ho anche modificato la classe del menu da 'menu' a 'sf-menu' solo per il funzionamento di superfish.css.

Si noti che la versione con il mio CSS funziona come si desidera, mentre quella con il proprio CSS ha l'errore che si descrive. Immagino ci sia un problema CSS che potresti risolvere confrontando il mio con il tuo e alterando il tuo per abbinarlo più vicino. Una differenza che vedo è che ho impostato gli UL del sottomenu su una larghezza em fissa e i loro LI figlio al 100%, mentre non lo fai. Questo non è il colpevole, ma mostra che si può trarre vantaggio dall'allineamento dei CSS più strettamente con il modo collaudato di fare i menu Superfish. Spero che questo ti aiuti.

+0

Ciao Joel, grazie per la tua risposta, ma vorrei mantenere il comportamento hoverIntent sumouseout, vorrei solo rimuovere hoverIntent PRIMA (onmouseover) la visualizzazione di un sottomenu. Ho parlato con il creatore di hoverIntent e lui mi consiglia di provare e modificare il nucleo di Superfish, in modo da rimuovere hoverIntent sumouseover. Qual'è il tuo punto di vista? Grazie in anticipo. – maartenmachiels

+0

Superfish gestisce il ritardo del mouseout tramite la sua opzione "delay", lasciando HoverIntent (se incluso) per gestire l'evento mouseover.disableHI rimuove HoverIntent onmouseover, ma lasciare "delay" impostato su 600 dovrebbe comunque mantenere il ritardo del mouseout. –

+0

Grazie ancora. Ho seguito le tue istruzioni, ma apparentemente senza successo. Potresti dare un'occhiata alla mia implementazione su [link] http://mediasoft.chocolata.be per vedere quale potrebbe essere il problema? – maartenmachiels

0

Quello che vedi al passaggio del mouse non è un ritardo, ma l'animazione corrente è in esecuzione.

Suppongo che sia possibile rimuovere l'animazione.

Se si anima solo l'altezza si ottiene una risposta visiva immediata rispetto all'opacità che richiede un secondo per apparire.

Funzionalità che può essere ma si desidera, non si conosce visivamente.

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

Ciao, grazie. Ora è già un po 'più chiaro, ma sembra esserci un leggero ritardo. Si noti che l'impostazione 'delay: 0' rimuove il ritardo onmouseOUT, mentre voglio solo rimuovere il delay onmouseOVER. Qui puoi vedere di cosa sto parlando: http://mediasoft.chocolata.be/ Potresti dare una mano? – maartenmachiels