Jquery 鼠标不活动时隐藏div设置为一个div

Jquery 鼠标不活动时隐藏div设置为一个div,jquery,intervals,onmousemove,Jquery,Intervals,Onmousemove,我找到了一个脚本,想修改一下。当用户在某个div#gallery上处于非活动状态或活动状态时,我正在尝试设置div#menuwrap的动画 现在它在第一次动画制作之后,即使在画廊外也仍然可以进行动画制作 非常感谢您的帮助 演示: 只要用户触发#gallery上的mousemove或keypress事件,延迟计时器就会重置。您还可以在其中添加悬停事件,以确保将菜单悬停在#gallery上时不会隐藏 回答第二部分 仅在触发#gallery events mousemove或keypress后检

我找到了一个脚本,想修改一下。当用户在某个div#gallery上处于非活动状态或活动状态时,我正在尝试设置div#menuwrap的动画

现在它在第一次动画制作之后,即使在画廊外也仍然可以进行动画制作

非常感谢您的帮助

演示:

只要用户触发#gallery上的mousemove或keypress事件,延迟计时器就会重置。您还可以在其中添加悬停事件,以确保将菜单悬停在#gallery上时不会隐藏


回答第二部分

仅在触发#gallery events mousemove或keypress后检查是否处于非活动状态。一旦用户移出#gallery框,它将关闭delayCheck()并将#menuwrap设置回top:-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用hover更新,但它仍然在#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);
    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);
    });