是否存在类似于“jQuery”的javascript/jQuery事件;onmousestop“;或任何相当于;onmousewheel“;对于光学鼠标和/或触摸板?
我正在尝试为我的站点创建一个基于Javascript的不活动超时。控制不活动的功能非常简单;记录“初始时间”的表单值随任何事件一起重置(假设为任何事件应表示活动): 在单独的函数中,当new Date().getTime()(即此时的时间)-document.forms.TimeoutForm.initialtime.value(以毫秒为单位)>720000(12分钟)时,提交一个隐藏的注销表单。现在,我将这些事件绑定到是否存在类似于“jQuery”的javascript/jQuery事件;onmousestop“;或任何相当于;onmousewheel“;对于光学鼠标和/或触摸板?,javascript,jquery,user-inactivity,Javascript,Jquery,User Inactivity,我正在尝试为我的站点创建一个基于Javascript的不活动超时。控制不活动的功能非常简单;记录“初始时间”的表单值随任何事件一起重置(假设为任何事件应表示活动): 在单独的函数中,当new Date().getTime()(即此时的时间)-document.forms.TimeoutForm.initialtime.value(以毫秒为单位)>720000(12分钟)时,提交一个隐藏的注销表单。现在,我将这些事件绑定到,如下所示: <body onclick="ResetTimeout(
,如下所示:
<body onclick="ResetTimeout()" onkeydown="ResetTimeout()" onscroll="ResetTimeout()">
这几乎适用于所有情况,因为我网站上的每个页面都需要一个垂直滚动条才能看到页面底部。任何鼠标或触摸板按键也会在屏幕上的任何位置被捕获。然而,两个有效的异常值适用于(a)从不向下滚动、从不单击鼠标/触摸板或按下任何键但仍在网站上活动的用户和(b)不太可能但可能向左/向右移动鼠标但从不滚动、单击或按下任何键的用户。从技术上讲,这两个用户在网站上都是活跃的,但根据我的代码,他们都被认为是不活跃的
我试图通过将onmouseover
或onmousemove
事件绑定到
来解释这些用户,但即使您根本不移动光标,这些事件也会持续触发。我在MouseWheel上找到了HTML5的,但这不适用于光学鼠标或触摸板(该功能从不启动,因此即使在屏幕上移动光标,也不会记录事件)
jQuery或Javascript中是否存在只在用户将鼠标移动到屏幕上任何位置(且不保持静止)时记录的事件?也就是说,只有当xcoord2-xcoord1(或与ycoord相同)在某个时间间隔内不等于零时才会触发的事件?我的直觉是这可能很复杂,可能需要代码在不同的时间间隔记录x或y坐标,然后进行比较。或者,是否存在类似于onmousestop
(移动中的光标停止移动)的事件?我读过关于“onwheel”(点击)的文章,但我需要一些适合所有浏览器的东西。有什么建议吗?谢谢除非鼠标实际移动,否则不会触发事件
当定点设备(通常是鼠标)在元素上移动时,将触发mousemove事件
这么简单
var timer;
$(document).on('mousemove', function() {
clearTimeout(timer);
timer = setTimeout(function() {
logout();
}, 720000);
});
当我将onmousemove=“alert('hey')”添加到标记时,即使光标静止,警报也会持续发出(至少在我的站点上)。如果使用jQuery,会有什么不同吗?我将尝试一下RegardLess这是因为事件会持续激发,并且使用警报会建立一个几乎永远不会结束的大队列,因此您的测试是错误的,请参阅附带的提琴“即使您根本不移动光标,这些事件也会持续触发”-您为什么会这样认为???我的坏..警报()即使光标处于静止状态,也会不断被触发。我在下面被@adeneo纠正了
var timer;
$(document).on('mousemove', function() {
clearTimeout(timer);
timer = setTimeout(function() {
logout();
}, 720000);
});