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根据table表格数值大小设置单元格背景色插件

一款自定义table表格单元格颜色插件,根据每行table表格中最大值来计算每行的颜色。数值越大背景颜色越深,反之颜色越浅。
  其它&杂项
 3960  0

jquery鼠标拖动DIV窗体移动插件

一款鼠标拖动插件,不使用jQuery UI等第三方库,实现移动友好的鼠标拖放功能。
  其它&杂项
 6878  0

jquery点击按钮同时打开两个链接插件

一款用于展示广告插件,点击链接按钮,不仅打开当前链接,同时打开另一个广告网站链接。
  其它&杂项
 5795  0

jquery文本内容自动转换成超链接插件

一个简单的的文本内容到链接转换器插件,可以自动将纯文本URL转换为超链接。
  其它&杂项
 1789  0

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

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