лично мне нравится «hoverIntent» плагин:
http://cherne.net/brian/resources/jquery.hoverIntent.html
со страницы: hoverIntent это плагин, который пытается определить намерения пользователя ... как хрустальный шар, только с помощью мыши движение! Он работает как (и был получен из) встроенного зависания jQuery. Однако вместо немедленного вызова функции onMouseOver он ждет, пока пользовательская мышь не замедлит работу до совершения вызова.
Почему? Задержка или предотвращение случайного срабатывания анимации или вызовов ajax. Простые тайм-ауты работают для небольших областей, но если ваша целевая область велика, она может выполняться независимо от намерения.
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)
Опции конфигурации
Чувствительность: Если мышь проходит меньше, чем это число пикселей между интервалами опроса, то «над» функция будет вызвана. При минимальном пороге чувствительности 1 мышь не должна перемещаться между интервалами опроса. С более высокими порогами чувствительности вы, скорее всего, получите ложный результат. Чувствительность по умолчанию: 7
интервал: Число миллисекунд hoverIntent ожидает от чтения/сравнения координаты мыши. Когда пользовательская мышь сначала входит в элемент, ее координаты записываются. Скорее всего, функция «over» может быть вызвана после одного интервала опроса. Установка интервала опроса выше приведет к увеличению задержки до первого возможного «сверх» вызова, но также увеличивает время до следующей точки сравнения. Интервал по умолчанию: 100
over: Обязательно.Функция, которую вы хотите вызвать onMouseOver. Ваша функция получает те же «это» и «события» объекты, что и из метода наведения jQuery.
таймаут: Простая задержка в миллисекундах, прежде чем вызывается функция «выход». Если пользователь возвращается к элементу до истечения времени ожидания, функция «выход» не будет вызываться (и не будет вызываться функция «over»). Это прежде всего защита от неаккуратных/человеческих траекторий мышц, которые временно (и непреднамеренно) снимают пользователя с целевого элемента ... давая им время для возвращения. Тайм-аут по умолчанию: 0
out: Обязательно. Функция, которую вы хотите вызвать onMouseOut. Ваша функция получает те же «это» и «события» объекты, что и из метода наведения jQuery. Примечание. Функция hoverIntent будет вызывать только функцию «out», если функция «over» была вызвана в тот же самый запуск.
$ (это) .data? Похоже, я кое-что прочитал! –
+1 для зависания! – alex
Это должен быть первый ответ. – Ronan