An open API service indexing awesome lists of open source software.

https://github.com/jgthms/impetus

Agnostic utility for adding momentum to anything. It's like iScroll, except not for scrolling. Supports mouse and touch events.
https://github.com/jgthms/impetus

Last synced: 3 months ago
JSON representation

Agnostic utility for adding momentum to anything. It's like iScroll, except not for scrolling. Supports mouse and touch events.

Awesome Lists containing this project

README

        

Impetus.js
=========
Add momentum to anything. It's like iScroll, except not for scrolling. Supports mouse and touch events.

Check out the demos on the [home page](http://chrisbateman.github.io/impetus).

Impetus will probably never support anything other than simple momentum. If you need scrolling or touch carousels or anything like that, this probably isn't the tool you're looking for.

### Usage ###
```javascript
var myImpetus = new Impetus({
source: myNode,
update: function(x, y) {
// whatever you want to do with the values
}
});
```
You give it an area to listen to for touch or mouse events, and it gives you the `x` and `y` values with some momentum.

Impetus will register itself as an AMD module if it's available.

### Constructor Options ###




Type
Default
Description




source
HTMLElement|String
document
Element reference or query string for the target on which to listen for movement.


update (required)
function(x, y)
-
This function will be called with the updated x and y values.


multiplier
Number
1
The relationship between the input and output values.


friction
Number
0.92
Rate at which values slow down after you let go.


initialValues
[Number, Number]
[0, 0]
Array of initial x and y values.


boundX
[Number, Number]
-
Array of low and high values. x-values will remain within these bounds.


boundY
[Number, Number]
-
Array of low and high values. y-values will remain within these bounds.


bounce
Boolean
true
Whether to stretch and rebound values when pulled outside the bounds.

### Methods ###




Description




.pause()
Disable movement processing.


.resume()
Re-enable movement processing.


.setMultiplier( <number> )
Adjust the multiplier in flight.


.setValues( <number> , <number> )
Adjust the current x and y output values.


.setBoundX( <number[2]> )
Adjust the X bound


.setBoundY( <number[2]> )
Adjust the Y bound


.destroy()

This will remove the previous event listeners. Returns null so you can use it to destroy your variable if you wish, i.e. instance = instance.destroy()


### Browser Support ###
Chrome, Firefox, Safari, Opera, IE 9+, iOS, Android. Support for IE 8 can be achieved by adding a polyfill for `addEventListener`.