欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript 判断用户有没有操作页面

程序员文章站 2022-03-21 21:48:37
javascript 判断用户有没有操作页面 用js判断用户有没有操作页面,我们所要做的就是整理我们的思路。 一、思路 用户有没有操作界面,我们可以从页面在规定时间内...

javascript 判断用户有没有操作页面

用js判断用户有没有操作页面,我们所要做的就是整理我们的思路。

一、思路

用户有没有操作界面,我们可以从页面在规定时间内有没有触发事件去考虑。比如用户有没有点击,有没有按键,有没有滚动鼠标滚轴。用户有没有移动鼠标等等。如果用户没有进行这些操作,那么我们可以大概的认为用户没有操作页面。我们可以给一个定时器。来记录在规定时间内用户有没有触发这些事件。我直接贴代码,代码的具体含义,我就不再讲解,思路大概就是这样。

二、代码演示

<!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>

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!