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可在线编辑表格插件

一款在线快速编辑的表格插件,很不错!
  其它&杂项
 8246  0

纯js创建的可自由添加的拖拽窗体便签插件

该代码可在页面上自由添加和拖动便签。表单中输入标题和内容,提交表单后立即显示可拖拽窗体。
  其它&杂项
 3224  0

jquery select插件带搜索框的下拉选择框代码

一款下拉菜单美化插件,带模糊搜索查询功能!默认显示12个菜单,鼠标hover经过底部自动滑动数据。
  其它&杂项
 3276  0

jquery自定义断点处显示在指定位置插件

可通过将元素的一个潜在父容器(在源中与匹配的数据集属性配对)设置为在指定断点处显示:block来控制元素在DIV中的位置。
  其它&杂项
 1229  0

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

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