如何使用javascript检测触摸设备上的不活动状态?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)

我一直在研究并发现用户在闲置x个时间后检测到不活动(当用户没有触摸屏幕时)的代码,这在使用鼠标时效果很好但是当我尝试将其用于触摸屏设备时,它没有检测到我的手指或工作。我添加了很多DOM事件,如“ touchstart ”,“ touchmove ”,“ touchend ”,“ touchcancel ”等,但它们似乎也没有用。这是我的代码

var idleTime = 0;
    $(document).ready(function () {
      //Increment the idle time counter every minute.
      var idleInterval = setInterval(timerIncrement, 3000); 

      //Zero the idle timer on mouse movement.
      $(this).mousemove(function (e) {
        idleTime = 0;
      });
      $(this).keypress(function (e) {
        idleTime = 0;
      });
    });

    function timerIncrement() {
      idleTime = idleTime + 1;
      if (idleTime > 1) { 
        alert("ok");
      }
    }
提问于
用户回答回答于

调整计时器(你说你想要每分钟更新一次,但是你将setInterval设置为3000毫秒,我会尝试这个:

var idleTime = 0;
$(document).ready(function () {
  //Increment the idle time counter every minute.
  var idleInterval = setInterval(timerIncrement, 60000); 

  //Zero the idle timer on mouse movement.
  $(this).mousemove(function (e) {
    idleTime = 0;
  });
  $(this).keypress(function (e) {
    idleTime = 0;
  });
  //Zero the idle timer on touch events.
  $(this).bind('touchstart', function(){
   idleTime = 0;
  });
  $(this).bind('touchmove', function(){
   idleTime = 0;
  });
});

function timerIncrement() {
  idleTime = idleTime + 1;
  if (idleTime > 1) { 
    alert("ok");
  }
}
用户回答回答于

尝试添加以下代码:

$(this).bind('touchstart touchmove click', function(){ idleTime = 0; }

扫码关注云+社区

领取腾讯云代金券