是否有任何类似“onmousestop”的javascript / jQuery事件或与光学鼠标和/或触摸板等效于“onmousewheel”的任何事件?
我正在尝试为我的网站创建基于Javascript的非活动超时。 控制不活动的function非常简单; 记录“初始时间”的表格值随任何事件同时重置(假设任何事件应指示活动):
function ResetTimeout() { document.forms.TimeoutForm.initialtime.value = (new Date().getTime()) / 1000; }//This function is called on each event, such as an onclick
在一个单独的函数中,当新的Date()。getTime()(即此时的时间) – document.forms.TimeoutForm.initialtime.value(以毫秒为单位)> 720000(12分钟)时,隐藏的注销表单是提交。 现在,我将这些事件绑定到 ,如下所示:
这几乎适用于所有情况,因为我网站上的每个页面都需要一个垂直滚动条来查看页面底部。 在屏幕上的任何位置也可以捕获任何鼠标或触摸板按下。 然而,两个有效的exception值将是(a)从不向下滚动的用户,并且从不点击鼠标/触摸板也不按任何键但仍以某种方式参与该站点和(b)用户(不太可能但可能)向左/向右移动鼠标但从不滚动,单击,也不按任何键。 这两个用户在技术上都会在网站上处于活动状态,但我的代码会将其视为非活动状态。
我通过将onmouseover
或onmousemove
事件绑定到来尝试对这些用户进行
onmousemove
,但即使您根本不移动光标,也会不断触发这些事件。 我找到了HTML5的onmousewheel
,但这对于光学鼠标和触摸板都不起作用(function永远不会触发,因此即使将光标移动到整个屏幕上也不会记录事件)。
是否只有当用户将鼠标移动到屏幕上的任何位置时才会记录jQuery或Javascript中的事件(并且不会保持静止)? 也就是说,只有当xcoord2-xcoord1(或者ycoord相同)在某个时间间隔内不等于零时触发的事件? 我的直觉是这可能很复杂,可能需要代码以不同的时间间隔记录x或y坐标然后进行比较。 或者,是否有任何事件会像onmousestop
(动作中的光标停止移动)? 我读到了关于“onwheel”(点击这里 )但我需要适合所有浏览器的东西。 有什么建议? 谢谢
除非鼠标实际移动,否则不会触发mousemove事件
当指针设备(通常是鼠标)在元素上移动时,会触发mousemove事件
这么简单
var timer; $(document).on('mousemove', function() { clearTimeout(timer); timer = setTimeout(function() { logout(); }, 720000); });
小提琴