【问题标题】:jquery timeout solution?jquery超时解决方案?
【发布时间】:2011-06-15 11:49:54
【问题描述】:

假设(我简化)我有 4 个 div 内容... 如果鼠标不动 2 秒,我喜欢淡出/隐藏它们 当鼠标再次移动时……让一切都再次出现……

用 jquery 做起来有多简单?

我真的不习惯超时和鼠标......更多的 css 习惯了!


我在谷歌上搜索“概念”并发现:Hide div element with jQuery, when mouse isn't moving for a period of time?

我会调查是否有效!

【问题讨论】:

    标签: javascript jquery timeout


    【解决方案1】:

    您需要创建一个运行计时器,它会在每次鼠标移动时重新启动。

    $(document).bind('mousemove', function() {
        var $somediv = $('#somediv');
    
        return function() {
            if(!$somediv.is(':visible'))
                $somediv.fadeIn('slow');
    
            this.tID && clearInterval(this.tID);
            this.tID = setTimeout(function() {
                $somediv.fadeOut('slow');
            }, 2000);
        };
    }());
    

    演示http://www.jsfiddle.net/ByrKk/

    【讨论】:

    • 使用clearTimeout,应该在超时的时候清空tID,这样就不会过期了。此外,在每次鼠标移动时清除和设置超时非常低效,但这是一个快速的解决方案。
    • 效率低下?!,什么是“更好”的解决方案?
    • 您在我的页面中实现的确切代码不起作用.. : aevm.ca/test1.php 你知道为什么吗?
    【解决方案2】:

    最终解决方案...还有一个简单的解决方案:http://paulirish.com/2009/jquery-idletimer-plugin/ jquery.idle-timer.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 2011-10-23
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多