плагин jQuery HoverIntent - это именно то, что вы ищете.
Свойство timeout устанавливает время, в течение которого мышь должна находиться за пределами области перед вызовом функции out.
Цитата с веб-сайта с намерением наведения:
timeout: простая задержка в миллисекундах перед вызовом функции out.Если пользователь вернется к элементу до истечения времени ожидания, функция «out» не будет вызываться (и не будет вызываться функция «over»).Это в первую очередь для защиты от неаккуратных траекторий, которые временно (и неумышленно) отнимают пользователя от целевого элемента ... давая ему время вернуться.Время ожидания по умолчанию: 0
Чтобы установить его ...
$('.trigger').hoverIntent({
over: startHover,
out: endHover,
timeout: 2000
});
Затем определите функции для обработки over
и out
function startHover(e){
//your logic here
$('.popup').fadeIn(600)
}
function endHover(){
//your logic here
$('.popup').fadeOut(600)
}
EDIT:
Вы также можете настроить свойство interval
, чтобы увеличить / уменьшить время срабатывания функции startHover ... по умолчанию установлено значение 100 миллисекунд ... вы можете установить его наноль, чтобы закрыть всплывающее окно, как только мышь войдет в область триггера, если хотите.