jquery检测当前用户空闲状态触发事件

所属分类: 网页特效-其它&杂项    2023-11-04 12:11:32

jquery检测当前用户空闲状态触发事件 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery检测当前用户空闲状态触发事件(共3个文件)

    • index.html

使用方法

(function ($) {
  "use strict";

  // vars
  var timeout;
  var firstEvent = true;
  var settings = {};
  var namespace = '.jq-inactivity';
  var events = {
    mouseEvents: "mousemove mousedown mousewheel wheel DOMMouseScroll MSPointerDown MSPointerMove",
    keyboardEvents: "keypress keydown keyup",
    touchEvents: "touchstart touchmove touchend"
  };

  $.fn.inactivity = function (opts) {
    var $el = $(this);
    var namespacedEvents = {
      mouseEvents: addNamespace(events.mouseEvents),
      keyboardEvents: addNamespace(events.keyboardEvents),
      touchEvents: addNamespace(events.touchEvents)
    };

    // defaults
    settings = $.extend({
      timeout: 3000,
      mouse: true,
      keyboard: true,
      touch: true,
      customEvents: "",
      triggerAll: false
    }, opts);

    clear($el);

    // when "destroy" requested by opts
    if (opts === "destroy") {
      return;
    }

    // set event listeners
    if (settings.mouse) {
      $el.on(namespacedEvents.mouseEvents, onActivity);
    }

    if (settings.keyboard) {
      $el.on(namespacedEvents.keyboardEvents, onActivity);
    }

    if (settings.touch) {
      $el.on(namespacedEvents.touchEvents, onActivity);
    }

    if (settings.customEvents !== '') {
      $el.on(settings.customEvents, onActivity);
    }

    function onActivity() {
      window.clearTimeout(timeout);
      timeout = window.setTimeout(onInactivity, settings.timeout);

      if (settings.triggerAll || firstEvent) {
        $el.trigger("activity");
      }

      if (firstEvent) {
        firstEvent = false;
      }
    }

    function onInactivity() {
      firstEvent = true;
      $el.trigger("inactivity");
    }

    function addNamespace(eventString) {
      var events = eventString.split(' ');

      var namespacedEvents = events.map(function (event) {
        return event + namespace;
      });

      return namespacedEvents.join(' ');
    }

    // clear all event listeners & reset plugin
    function clear($el) {
      $el.off(namespacedEvents.mouseEvents);
      $el.off(namespacedEvents.keyboardEvents);
      $el.off(namespacedEvents.touchEvents);

      if (settings.customEvents !== '') {
        $el.off(settings.customEvents);
      }

      window.clearTimeout(timeout);

      firstEvent = true;
    }
  };
})(jQuery);

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
标签: 空闲触发事件
相关资源 / 其它&杂项

jquery多层多区域拖拽插件

一款多层多区域拖拽小插件,可自定义多区域,拖拽图片悬停在某个区域上放手,会自动吸附归位,样式完全自定义。
  其它&杂项
 71147  0

基于CSS3手机移动端单页触摸滑动特效代码

page.js是一个单页模拟触屏滑动插件,用于在单页网站和单页web网页上实现基于CSS3的平滑页面转换效果,带点击按钮抖动特效。
  其它&杂项
 11027  0

jquery可自定义控制开关的元素拖动插件

Draggable Touch是一个基于jQuery的移动端触摸拖放库,它作用于任何DOM元素都可以通过触摸事件进行拖动。
  其它&杂项
 6955  0

jquery点击按钮可对table删除/增加表格行插件

一款table新增删除行插件,自动给每行table表格行增加一列,可删除、增加行按钮,鼠标点击+/-按钮动态复制/删除表格行。
  其它&杂项
 2619  0

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论