Giter Site home page Giter Site logo

jslow421 / jquery.idle Goto Github PK

View Code? Open in Web Editor NEW

This project forked from henriqueboaventura/jquery.idle

0.0 1.0 0.0 46 KB

A dead simple jQuery plugin that executes a callback function if the user is idle.

License: Other

JavaScript 73.86% HTML 26.14%

jquery.idle's Introduction

jQuery Idle

A dead simple jQuery plugin that executes a callback function if the user is idle.

Usage

Since this is a simple plugin, the usage is simple too.

First, add the jquery.idle.js to your document along with jQuery library:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.idle.js"></script>

Then, just call the function in the element that you want to track user idleness

$(document).idle({
  onIdle: function(){
    alert('Since you waited so long, the answer to the Ultimate Question of Life, the Universe, and Everything is 42');
  },
  idle: 10000
})

That will display a alert (and a great revelation :D) to the user after 10 seconds of idleness.

If you want to call some function after user back from idleness, just add the onActive option:

$(document).idle({
  onIdle: function(){
    alert('I\'m idle');
  },
  onActive: function(){
    alert('Hey, I\'m back!');
  },
  idle: 10000
})

To check window visibility, add the onShow or onHide options:

$(document).idle({
  onHide: function(){
    alert('I\'m hidden');
  },
  onShow: function(){
    alert('Hey, I\'m visible!');
  }
})

You can also check if a specific element is idle, actually, you can use any jQuery selector:

$('header, footer').idle({
  onIdle: function(){
    alert('It\'s been a long time since you don\'t see me');
  },
  idle: 20000
})

You can choose which events will be used to "refresh" the idle timer

$(document).idle({
  onIdle: function(){
    alert('It\'s been a long time since you don\'t see me');
  },
  events: 'mouseover mouseout',
  idle: 30000
})

And you can choose if you want to start from an idle state or not

$(document).idle({
  onIdle: function(){
    alert('It\'s been a long time since you don\'t see me');
  },
  idle: 30000,
  startAtIdle: true
})

Options

onIdle        # callback function that will be triggered when the user gets idle
onActive      [ default function(){} ] # callback function that will be triggered when the user gets active
onHide        [ default function(){} ] # callback function that will be triggered when window is hidden
onShow        [ default function(){} ] # callback function that will be triggered when window is visible
events        [ default = mousemove keydown mousedown touchstart ] # events that will reset the idle time
idle          [ default = 60000 ] # idle time in ms
keepTracking  [ default = true ] # set it to false if you want to track only the first time
startAtIdle   [ default = false ] # if you want to start idle, set it to true
recurIdleCall [ default = false ] # by default use setTimeout, set it to true if you want to use setInterval

Events

"idle:stop": will stop and remove user tracking

Vanilla

jQuery Idle also provide a non-jQuery version. Use the vanilla.idle.js file instead, and initialize it like this:

idle().start();

Options are the same as with the jQuery version:

idle({
  onIdle: function (){
    console.log('idle !');
  },
  // ...
}).start();

Changelog

1.3.0

  • Replacing the jquey dependency for a peerDependency as mentioned on the issue #31

1.2.9

  • Fixed jquery vulnerability.

1.2.8


  • Added the jQuery dependency to the package.json (#31) and fix the documentation format.

1.2.7


  • Corrected the logic in resetTimeout. Setting the idle = false before calling the onActive handler prevents looping when calling idle:stop in the onActive handler. (@ashupp)

1.2.6


1.2.5


  • Added the recurIdleCall option to choose between setTimeout ou setInterval (thanks kgaikwad)

1.2.4


  • Changed keypress to keydown to also detect arrow keys on a keyboard press, and not just the normal A-Z keys (thanks carlblock)

1.2.3


  • Added 'idle:stop' event to stop and remove user tracking (thanks D3add3d and zachdixon)

1.2.2


  • The logic behind 'keepTracking' was a total mess. Rewrote the functionality to work as it should
  • Change the default 'keepTracking' value. Now is set to true

1.2.1


  • Added the 'startAtIdle' option so you can choose if you want to start idle or not (@hugohil)

1.2.0


  • Added the 'onHide' and 'onShow' callback functions to be executed when window changes visibility (@DanH42)

1.1.0


  • Renamed the 'callback' setting to 'onIdle'
  • Added the 'onActive' callback function to be executed when user back from idleness (thanks @joelsouza for the tip)

1.0.0


First basic version

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.