osobiście lubię „hoverIntent” wtyczki:
http://cherne.net/brian/resources/jquery.hoverIntent.html
ze strony: hoverIntent to plugin, który próbuje określić intencje użytkownika ... jak kryształowej kuli, tylko z myszy ruch! Działa jak (i został wyprowadzony z) wbudowanego w jQuery'a hover. Jednak zamiast natychmiast wywoływać funkcję onMouseOver, czeka ona, aż mysz użytkownika zwolni wystarczająco, zanim wykona połączenie.
Dlaczego? Aby opóźnić lub zapobiec przypadkowemu odpaleniu animacji lub wywołań ajaxowych. Proste limity czasu działają na małych obszarach, ale jeśli obszar docelowy jest duży, może być wykonywany niezależnie od zamiaru.
var config = {
sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
interval: 200, // number = milliseconds for onMouseOver polling interval
over: makeTall, // function = onMouseOver callback (REQUIRED)
timeout: 500, // number = milliseconds delay before onMouseOut
out: makeShort // function = onMouseOut callback (REQUIRED)
};
$("#demo3 li").hoverIntent(config)
Opcje konfiguracji
czułość: Jeśli mysz porusza się mniej niż tej liczby pikseli między odstępach wyborczych, a następnie „nad” funkcja zostanie wywołana. Przy minimalnym progu czułości 1 mysz nie może się przemieszczać między interwałami odpytywania. Przy wyższych progach czułości bardziej prawdopodobne jest otrzymanie fałszywego wyniku pozytywnego. Domyślna czułość: 7
przerwa: Liczba hoverIntent milisekund czeka między odczytem/porównaniem współrzędnych myszy. Kiedy mysz użytkownika najpierw wchodzi do elementu, jego współrzędne są rejestrowane. Najszybsza funkcja "over" może być wywołana po jednym interwale odpytywania. Ustawienie wyższej częstotliwości odpytywania zwiększy opóźnienie przed pierwszym możliwym wywołaniem "over", ale także zwiększy czas do następnego punktu porównania. Domyślny interwał: 100
przez: Wymagany.Funkcja, którą chcesz wywołać onMouseOver. Twoja funkcja otrzymuje te same obiekty "to" i "zdarzenia", co z metody kursorowej jQuery.
timeout: Proste opóźnienie, w milisekundach, przed wywołaniem funkcji "out". Jeśli użytkownik wróci z powrotem do elementu przed upływem limitu czasu, funkcja "out" nie zostanie wywołana (ani nie zostanie wywołana funkcja "over"). Ma to przede wszystkim chronić przed niechlujnymi/ludzkimi trajektoriami, które tymczasowo (i nieumyślnie) zabierają użytkownika z elementu docelowego ... dając mu czas na powrót. Domyślny limit czasu: 0
obecnie: Wymagany. Funkcja, którą chcesz wywołać onMouseOut. Twoja funkcja otrzymuje te same obiekty "to" i "zdarzenia", co z metody kursorowej jQuery. Uwaga, hoverIntent wywoła tylko funkcję "out", jeśli w tym samym przebiegu została wywołana funkcja "over".
$ (this) .data? Wygląda na to, że mam coś do zrobienia! –
+1 dla hoverIntent! – alex
To powinna być pierwsza odpowiedź. – Ronan