mrmartineau/InteractionCheck.js

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# InteractionCheck.js

Use this script to check if your users have not interacted with your page after a given amount of time. You can choose what to listen for (`mousemove` or `scroll` are good examples) and then run a callback function afterwards.

[![npm version](https://badge.fury.io/js/interactioncheck.svg)](http://badge.fury.io/js/interactioncheck) [![Code Climate](https://codeclimate.com/github/mrmartineau/InteractionCheck.js/badges/gpa.svg)](https://codeclimate.com/github/mrmartineau/InteractionCheck.js) <br>
[![NPM](https://nodei.co/npm/interactioncheck.png?downloads=true)](https://nodei.co/npm/interactioncheck/)


### Bower
`bower install interactioncheck`

### NPM
`npm install interactioncheck --save`

## Usage
Include **interactioncheck.js** in your JavaScript bundle or add it to your HTML page like this:

```html
<script type='application/javascript' src='/path/to/interactioncheck.js'></script>
```

or with NPM/Browserify

```js
var InteractionCheck = require('interactioncheck');
```

### Create a new checker
```js
// Listen for mousemove event
var mousemoveCheck = new InteractionCheck('mousemove', 4000, function() {
    console.log('no mousemove');
});

// Listen for scroll event
var scrollCheck = new InteractionCheck('scroll', 4000, function() {
    console.log('no scroll');
});

// Prevent from starting immediately and restarting
var touchstartCheck = new InteractionCheck('touchstart', 4000, function() {
    console.log('no touchstart');
}, false, false);
```

## API

`InteractionCheck(event, interval, callback, startImmediately, restart)`

### `event` [string]
Default: `mousemove`

Can be any javascript event, e.g. `mousemove` or `scroll`.

### `interval` [integer]
Default: `6000`

Time in milliseconds (thousandths of a second) to wait before triggering the check.

### `callback` [function]
Default: `undefined`

A callback function to be run if the user is inactive for your specified amount of time.

### `startImmediately` [boolean] [optional]
Default: `true`

Set this to true to start the timer immediately after invocation.

### `restart` [boolean] [optional]
Default: `true`

Set this to `true` to restart the check after the callback has fired.


## Public methods

### `InteractionCheck.start()`
Call `start()` to start the check if `startImmediately` has been set to `false`.

### `InteractionCheck.stop()`
Call `stop()` to stop the check's timer at any time.

#### `start()` / `stop()` examples

```js
var touchstartCheck = new InteractionCheck('touchstart', 4000, function() {
    console.log('no touchstart');
}, false, false);

// Start the prompt
touchstartCheck.start();

// Stop the prompt
touchstartCheck.stop();
```

## Browser support
Chrome, Internet Explorer 9+, Firefox, Opera

## Module loader support
Browserify (Node.js) & AMD