本文介绍如何利用 JavaScript 检测用户在页面上的操作状态。通过监听点击、按键、滚动及鼠标移动等事件,结合定时器机制,判断规定时间内是否有用户交互行为。文中提供了完整的代码示例及调用方法,帮助开发者实现页面空闲检测功能。
JavaScript 判断用户有没有操作页面
JavaScript 判断用户有没有操作页面
使用 JavaScript 判断用户是否对页面进行了操作,核心在于理清实现逻辑。
一、思路
一、思路
判断用户是否操作界面,可以从页面在指定时间内是否触发相关事件入手。例如,检测用户是否点击、按键、滚动鼠标滚轮或移动鼠标等。若这些操作均未发生,可视为用户未操作页面。为此,可以设置一个定时器,用于记录规定时间内是否触发了上述事件。以下直接展示代码,具体含义不再赘述,整体思路即如此。
二、代码演示
二、代码演示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js判断用户有没有操作页面</title>
</head>
<body>
<script>
window.onload = function (){
(function($){
funObj = {
timeUserFun:'timeUserFun',
}
$[funObj.timeUserFun] = function(time){
var time = time || 2;
var userTime = time*60;
var objTime = {
init:0,
time:function(){
objTime.init += 1;
if(objTime.init == userTime){
console.log(111) // 用户到达未操作事件 做一些处理
}
},
eventFun:function(){
clearInterval(testUser);
objTime.init = 0;
testUser = setInterval(objTime.time,1000);
}
}
var testUser = setInterval(objTime.time,1000);
var body = document.querySelector('html');
body.addEventListener("click",objTime.eventFun);
body.addEventListener("keydown",objTime.eventFun);
body.addEventListener("mousemove",objTime.eventFun);
body.addEventListener("mousewheel",objTime.eventFun);
}
})(window)
// 直接调用 参数代表分钟数,可以有一位小数;
timeUserFun(0.1);
}
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js判断用户有没有操作页面</title>
</head>
<body>
<script>
window.onload = function (){
(function($){
funObj = {
timeUserFun:'timeUserFun',
}
$[funObj.timeUserFun] = function(time){
var time = time || 2;
var userTime = time*60;
var objTime = {
init:0,
time:function(){
objTime.init += 1;
if(objTime.init == userTime){
console.log(111) // 用户到达未操作事件 做一些处理
}
},
eventFun:function(){
clearInterval(testUser);
objTime.init = 0;
testUser = setInterval(objTime.time,1000);
}
}
var testUser = setInterval(objTime.time,1000);
var body = document.querySelector('html');
body.addEventListener("click",objTime.eventFun);
body.addEventListener("keydown",objTime.eventFun);
body.addEventListener("mousemove",objTime.eventFun);
body.addEventListener("mousewheel",objTime.eventFun);
}
})(window)
// 直接调用 参数代表分钟数,可以有一位小数;
timeUserFun(0.1);
}
</script>
</body>
</html>
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!