仅当用户处于空闲状态 X 时间时才显示 DIV
Display DIV only if user has been Idle for X amount of time
我想显示一个有用的 DIV,它基本上向用户展示如何在特定页面上完成某些事情,但前提是用户已经空闲了一段时间,比如 30 秒。
我所说的"空闲"的意思是:
不点击任何链接不右键单击任何地方
异常:我想从"用户空闲"规则中排除以下条件:
用户已向上或向下/向左或向右滚动用户在网站上的空白区域/或没有源/链接的元素上按下了鼠标按钮,例如,没有超链接的图像。和,按下键盘按钮
这能做到吗?或者我们只能检测到特定事件发生的时间?
任何想法/建议/资源将不胜感激。
谢谢
相当基本的...
var trigger = 30000
$.(function(){
setInterval('displayInf()',trigger );
$('body').bind('click dblclick keypress mousemove scroll', function(){
clearDisplayInf();
});
});
function displayInf()
{
$('body').append('<div>Your notification div</div>');
}
function clearDisplayInf()
{
trigger = clearInterval(trigger);
trigger = setInterval('displayInf()', 30000 );
}
这应该可以解决问题 - 您可以添加一些脚本以使div 可移动并在删除后再次启动计时器,但这真的只是抛光......
DOM 中的事件会从叶子冒泡到根,因此在文档上添加一个事件侦听器是有意义的。
但是由于我们有可能停止在某些元素中为点击事件冒泡,因此在文档上注册点击事件可能无法完美工作,在这种情况下,注册mousedown
mouseup
事件会有所帮助:
var timer; // create a timer at first
// restart timer on click
function startIdle() {
timer = setTimeout(function() { /* show div */ }, time);
}
if (document.addEventListener) {
document.addEventListener('mouseup', startIdle, false);
}
else {
document.attachEvent('onmouseup', startIdle);
}
// start the first timer
startIdle();
相关文章:
- javascript函数将当前时间显示为html选择标记的预选值
- Javascript:如何以毫秒为单位将时间显示为天:小时:分钟
- 使用 Javascript 根据星期几和一天中的时间显示 HTML 元素
- 脚本 - 不同的时间显示不同的内容
- Javascript时间显示来自计算机的上午/下午(快速调整)
- 日期时间倒计时,删除小数,并在每个类别中保留时间显示时间
- 如何仅在指定时间显示文本
- 按星期几和一天中的时间显示不同的背景图像
- 使用不同的持续时间显示一个接一个的图像,中间有一个空白屏幕
- 根据当前加载时间显示链接
- 我想根据它们的时间和持续时间显示json中的元素,并且间隔被settimeout打断
- Javascript在特定时间显示隐藏元素
- 有x轴上的时间显示最近24小时从当前时间
- 鼠标悬停在多个折线图上,相同的x(时间)显示不同的y(价格)
- 在没有偏移时,以本地时间显示数据库中的UTC datetime
- 如何循环在不同时间显示问候语的函数
- 根据一天中的时间显示不同的复选框
- 根据服务器日期和时间显示和隐藏
- JavaScript错误的时间显示在两个时间之间
- Web应用程序中的时区敏感日期和时间显示