jQuery: задержка fadeIn, slideDown или чего-то подобного - PullRequest
1 голос
/ 11 декабря 2010

Прошлой ночью мне было интересно, как можно отложить затухание или что-то подобное. Это не то, над чем я работаю, мне просто интересно.

Если у вас есть список со ссылками, который активирует всплывающую подсказку, например, при наведении курсора. Как заставить его «ждать», пока вы не зависли в течение 1 секунды?

Я хочу сделать это, чтобы подсказки не "мерцали" при наведении курсора на список. Если вы понимаете, о чем я.

То же самое можно использовать при входе в систему. Если вы видите http://twitter.com/ (не авторизован). Если окно входа в систему сверху было активировано при наведении курсора, а не на щелчок, оно снова исчезнет, ​​если курсор покинет поле входа. Можно ли установить «задержку», чтобы курсор мог покинуть окно входа в систему и вернуться обратно, не исчезая ...?

Короче говоря:
- Как активировать скрипт при наведении курсора на x секунд?
- Как установить задержку для скрытия div (когда он не зависает), который был активирован при наведении курсора?
- Это то же самое, только наоборот?

1 Ответ

0 голосов
/ 11 декабря 2010

Существует довольно продвинутый плагин для наведения мыши, который ждет, пока ваша мышь замедлится , прежде чем запускать произвольный код - http://cherne.net/brian/resources/jquery.hoverIntent.html

В качестве альтернативы, если вам не нужно что-то настолько продвинутое... Вы можете просто запустить анимацию в setTimeout(), и при вызове mouseleave clearTimeout()

Еще одна альтернатива - не беспокоиться о задержке.Если вы сделаете .stop().fadeIn() и .stop().fadeOut() вместо простых show() и hide(), вы не получите "мерцание", и эффект будет выглядеть довольно хорошо.

(Вы можетепосмотрите на .delay() для задержки кода, связанного с анимацией - хотя это только задержит анимацию, даже если вы переместитесь с div до окончания задержки.)

...