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.
- Host: GitHub
- URL: https://github.com/jgthms/impetus
- Owner: jgthms
- License: mit
- Fork: true (chrisbateman/impetus)
- Created: 2023-01-11T14:02:25.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-02T17:12:10.000Z (over 2 years ago)
- Last Synced: 2024-10-01T05:41:26.378Z (7 months ago)
- Homepage: chrisbateman.github.io/impetus
- Size: 178 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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`.