2011-05-11 55 views
0

我想显示一个有用的DIV,它基本上显示了用户如何在特定页面上完成某些操作,但只有只有如果用户空闲了一段时间一段时间,比如30秒。仅当用户空闲X时间时才显示DIV

我的意思是“空闲”的是:

不点击任何链接 不右击任何地方

例外: 我想从被用户闲置规则排除以下条件:

用户向上或向下/向左或向右滚动 用户在网站上的空白区域上或在没有源/链接的元素(例如没有超链接的图像)上按下鼠标按钮。 和,按下键盘按钮

可以这样做吗?或者我们只能在发生特殊事件时才检测到

任何想法/建议/资源将不胜感激。

谢谢

回答

0

事件在DOM会从泡叶根,从而对文档添加一个事件侦听器才有意义。

但由于我们是在某些元素点击事件possibiliy停止冒泡,注册点击文档事件可能无法很好地工作,在这种情况下,注册mousedownmouseup事件将帮助:

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(); 
1

相当基础。 ..

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移动并重新启动定时器一旦其删除,但只是抛了真的..

+0

身体上的那些事件听众显然意味着被捕获的dom事件的船载以及随之而来的缺点...... – 2011-05-11 09:59:13