javascript - 在 JavaScript 中对空闲状态执行操作

标签 javascript timeout python-idle mousemove

我正在尝试在网页中设置一个脚本,该脚本执行以下操作:如果鼠标在一定时间(例如五秒)内处于非事件状态,则执行一个操作(例如隐藏一个元素);然后,如果鼠标移动,则执行一个操作(例如,取消隐藏该元素)。

我想要的是某种方法来对用户鼠标不活动(不一定是键盘不活动)执行操作。

感谢您的帮助。

最佳答案

如果您使用的是 jQuery:

(function() {
    var timeout;
    var isHidden = false;
    $(document).mousemove(function() {
        if (timeout) {
            window.clearTimeout(timeout);
        }
        timeout = window.setTimeout(function() {
            if (!isHidden) {
                //hide the element here
                isHidden = true;
            }
        }, 5000);
        if (isHidden) {
            //show the element here
            isHidden = false;
        }
    });
})();

非 jQuery 版本:

(function() {
    var timeout;
    var isHidden = false;

    function hideOnIdle() {
        if (timeout) {
            window.clearTimeout(timeout);
        }
        timeout = window.setTimeout(function() {
            if (!isHidden) {
                //hide the element here
                isHidden = true;
            }
        }, 5000);
        if (isHidden) {
            //show the element here
            isHidden = false;
        }
    }

    if (document.addEventListener) {
        document.addEventListener("mousemove", hideOnIdle);
    } else {
        document.attachEvent("onmousemove", hideOnIdle);
    }
})();

jsfiddle

关于javascript - 在 JavaScript 中对空闲状态执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482155/

相关文章:

javascript - JQuery追加到变量元素

javascript - 即使我们确切知道连接的路由,缓存 ICE 候选者和 sdp 是否也不起作用?

java - Android TCP套接字超时

PowerShell Start-Service 无休止地运行

Python IDLE 与多线程兼容吗?

javascript - Flexslider 无法识别动态加载的内容?

javascript - 如何在 Sequelize 中创建关联

algorithm - 在重试期间调整 HTTP 超时与退避

python - 当我运行 pygame 时,它​​不会加载我的游戏?

python - 从 Python 中的字符串中删除辅音