JSFIDDLE DEMO
сброс таймера задержки каждый раз, когда пользователь запускает MouseMove или нажатия клавиши на #gallery. Вы также можете добавить событие зависания там, чтобы гарантировать, что меню никогда не будет скрываться при наведении на #gallery.
var interval = 1;
function delayCheck()
{
if(interval == 5)
{
$('#menuwrap').animate({top: '-50px'}, 100);
interval = 1;
}
interval = interval+1; console.log(interval);
}
$('#gallery').bind('mousemove keypress', function() {
$('#menuwrap').animate({top: '0'}, 100);
interval = 1;
// reset the delay timer
clearInterval(_delay); console.log('reset timer');
_delay = setInterval(delayCheck, 500);
});
// starts delay timer when page loads
_delay = setInterval(delayCheck, 500);
ОТВЕТ ЧАСТЬ 2
JSFIDDLE DEMO #2
только проверяет бездеятельности раз #gallery события MouseMove или нажатие клавиши были спровоцированы. Как только пользователь переместится из поля #gallery, он убьет delayCheck() и установит #menuwrap наверх: -50px.
var interval = 1;
_delay = 0;
function delayCheck()
{
if(interval == 5)
{
$('#menuwrap').animate({top: '-50px'}, 100);
interval = 1;
clearInterval(_delay);
}
interval = interval+1;
console.log(interval);
}
// turn delayCheck() ON, when mousing to #gallery
$('#gallery').bind('mousemove keypress', function()
{
console.log("mousemove keypress");
$('#menuwrap').animate({top: '0'}, 100);
interval = 1;
// reset delayCheck
clearInterval(_delay);
_delay = setInterval(delayCheck, 500);
});
// turn delayCheck() OFF, when mousing out of #gallery
$('#gallery').mouseout(function(){
console.log("mouseout");
$('#menuwrap').animate({top: '-50px'}, 100);
interval = 1;
clearInterval(_delay);
});
Спасибо большое! Не знаете, как сделать так, чтобы delaycheck запускался только тогда, когда пользователь неактивен над #gallery ... вы со мной? Я не хочу, чтобы #menuwrap -50px, когда пользователь зависает #menuwrap только тогда, когда пользователь наводит #gallery –
http://jsfiddle.net/959wF/4/, обновленный с помощью наведения, но он по-прежнему анимируется вне #gallery –
Got Это. Позвольте мне немного переделать его. –