2011-11-22 11 views
10

Mam problemy z usunięciem początkowego opóźnienia poprawki rozwijanej Superfish. Mój klient chce opóźnienia, ale nie opóźnienia.Usuń opóźnienie z rozwijanego menu Superfish onmouseover, zachowując opóźnienie w trakcie nawilżania onmouseout

Mam czyste menu rozwijane CSS (identyczne z menu rozwijanym Twentyten) i stosuję do tego Suckerfish.js.

Oto mój kod:

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

Czytałem przez the manual of Superfish, ale nie wydaje się znaleźć co wywołuje początkowe opóźnienie. Może ma to coś wspólnego z animacją animation: {opacity:'show'} (której nie mogę się pozbierać).

Pomoc jest doceniana!

Odpowiedz

13

Wygląda na to, że możesz dołączyć wtyczkę HoverIntent. Jedną z opcji Superfish jest "disableHI". Jeśli ustawisz to na "true", wówczas Superfish nie użyje HoverIntent do opóźnienia zdarzenia mouseenter. Lub nie możesz po prostu włączyć wtyczki HoverIntent, jeśli nie planujesz używać jej w innym miejscu na stronie. Mam nadzieję że to pomoże.

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

Utworzono dwa przypadki testowe. Wersja first one jest uproszczoną wersją strony przy użyciu CSS i the second jest dokładnie taka sama, z wyjątkiem tego, że usunąłem wszystkie twoje CSS i uwzględniłem tylko podstawowe pliki superfish.css znajdujące się w witrynie Superfish. Zmieniłem także klasę menu z "menu" na "sf-menu", tak aby działało superfish.css.

Zauważ, że wersja z moim CSS działa tak, jak tego chcesz, podczas gdy wersja z Twoim CSS zawiera błąd, który opisujesz. Wydaje mi się, że istnieje problem z CSS, który można rozwiązać, porównując moje z twoimi i zmieniając twoje, aby dopasować je bliżej. Jedną z różnic, które widzę, jest to, że ustawiłem podrzędne menu UL na stałą szerokość em i ich LI dla dzieci na 100%, podczas gdy ty nie. To nie jest winowajca, ale pokazuje, że możesz lepiej dopasować swój CSS do wypróbowanego i przetestowanego sposobu tworzenia menu Superfish. Mam nadzieję że to pomoże.

+0

Cześć Joel, dziękuję ci za odpowiedź, ale chciałbym zachować hoverIntent zachowanie onmouseout, po prostu chciałbym usunąć HoverIntent PRZED (onmouseover) wyświetlanie podmenu. Rozmawiałem z twórcą hoverIntent i doradza mi, aby spróbować edytować rdzeń Superfish, aby usunąć onoverover hoverIntent. Jakie są twoje poglądy na ten temat? Z góry dziękuję. – maartenmachiels

+0

Superfish obsługuje opóźnienie mouseout poprzez opcję "delay", pozostawiając HoverIntent (jeśli jest w zestawie) do obsługi zdarzenia mouseover.disableHI usuwa HoverIntent onmouseover, ale pozostawienie "delay" ustawionego na 600 powinno nadal zachować opóźnienie mouseout. –

+0

Jeszcze raz dziękuję. Postępowałem zgodnie z twoimi instrukcjami, ale najwyraźniej bez powodzenia. Czy mógłbyś rzucić okiem na moją implementację na [link] http://mediasoft.chocolata.be, aby zobaczyć, jaki może być problem? – maartenmachiels

0

To, co widzisz po najechaniu myszą, nie jest żadnym opóźnieniem, ale rzeczywistym uruchomieniem animacji.

Przypuszczam, że można usunąć animację.

Jeśli tylko ożywiasz wysokość, uzyskujesz natychmiastową reakcję wzrokową, w przeciwieństwie do krycia, która pojawia się dopiero po chwili.

Mądra funkcjonalność, która może być, ale chcesz, nie wiesz o tym wizualnie.

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

Cześć akreek, dziękuję. Teraz jest już nieco jaśniej, ale wydaje się, że jest trochę opóźnienia. Zwróć uwagę, że ustawienie "delay: 0" usuwa opóźnienie onmouseOUT, a chcę tylko usunąć opóźnienie onmouseOVER. Tutaj możesz zobaczyć, o czym mówię: http://mediasoft.chocolata.be/ Czy możesz podać rękę? – maartenmachiels