javascript - 如何在 10 秒不活动后显示弹出窗口

标签 javascript jquery

我想在用户不活动 10 秒后弹出价格警报。现在,弹出窗口仅在单击时出现。我想更换它。

我已经尽力了,但还是没能完成。

$(document).ready(function () {
  var idleInterval = setInterval(inActiveTimer, 1000);
  $(this).mousemove(function (e) {
    idleTime = 0;
  });
  $(this).keypress(function (e) {
    idleTime = 0;
  });
  $(".sleepy-close, .sleepy-overlay, .sleepy-wake-up").click(function () {
    $(".sleepy-overlay").hide();
    clearInterval(idleInterval);
  });
});

代码的最后一部分导致点击启用弹出窗口。如何将其替换为 10 秒不活动后自动弹出的窗口。

最佳答案

这将帮助您捕获屏幕中 10 秒的不活动状态。根据需要更改代码。

document.body.innerText = "hello count the seconds";
setIdleTimeout(10000, function() {
    document.body.innerText = "Where did you go?";
}, function() {
    document.body.innerText = "Welcome back!";
});



function setIdleTimeout(millis, onIdle, onUnidle) {
    var timeout = 0;
    startTimer();

    function startTimer() {
        timeout = setTimeout(onExpires, millis);
        document.addEventListener("mousemove", onActivity);
        document.addEventListener("keypress", onActivity);
    }
    
    function onExpires() {
        timeout = 0;
        onIdle();
    }

    function onActivity() {
        if (timeout) clearTimeout(timeout);
        else onUnidle();
        //since the mouse is moving, we turn off our event hooks for 1 second
        document.removeEventListener("mousemove", onActivity);
        document.removeEventListener("keypress", onActivity);
        setTimeout(startTimer, 1000);
    }
}

关于javascript - 如何在 10 秒不活动后显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55469193/

相关文章:

javascript - Chrome存储同步以持久顺序获取项目

javascript - 使用 `typeof ==` 和 `===` 检查未定义

javascript - JavaScript 中 MM/YYYY 的正则表达式

javascript - 在 .data 或 attr 中保存对象状态 - 性能与 CSS?

jquery - 选择另一个选项时更改选项的文本

javascript - Jquery 后期绑定(bind)使用 on - 旧表单不起作用?

javascript - 如何提交自定义输入字段数据

javascript - Angular 中的 Promise 方法

javascript - 如何强制 iframe 调整大小以适应嵌入式文档?

javascript - Bootstrap 下拉按钮宽度问题