Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中对空闲状态执行操作_Javascript_Timeout_Python Idle_Mousemove - Fatal编程技术网

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

在JavaScript中对空闲状态执行操作,javascript,timeout,python-idle,mousemove,Javascript,Timeout,Python Idle,Mousemove,我正在尝试在网页中设置一个脚本,该脚本执行以下操作:如果鼠标在一定时间内处于非活动状态(例如,5秒),则执行一个操作(例如,隐藏元素);然后,如果移动了的鼠标,则执行一个操作(例如,取消隐藏元素) 我想要的是在用户鼠标不活动(不一定是键盘不活动)时执行操作的某种方式 感谢您的帮助。如果您正在使用jQuery: (function() { var timeout; var isHidden = false; $(document).mousemove(function()

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

我想要的是在用户鼠标不活动(不一定是键盘不活动)时执行操作的某种方式


感谢您的帮助。

如果您正在使用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);
    }
})();

我使用的是普通JavaScript。我尝试过转换它,但我无法让它工作。我把它放在这里:这一切都应该包装在一个匿名函数中,以防止对全局范围的污染。为什么不使用
setInterval
并完成清除/设置超时的工作呢?当用户移动鼠标时,您仍然需要重置它,所以我怀疑它是否有用。