MCPcopy Index your code
hub / github.com/chrisbateman/impetus

github.com/chrisbateman/impetus @v0.8.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.8 ↗ · + Follow
36 symbols 60 edges 2 files 15 documented · 42%
What it actually does AI analysis from the code graph — generated when you open this
loading…
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.

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

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.

Core symbols most depended-on inside this repo

getPassiveSupported
called by 4
src/Impetus.js
constructor
called by 0
src/Impetus.js
cleanUpRuntimeEvents
called by 0
src/Impetus.js
addRuntimeEvents
called by 0
src/Impetus.js
callUpdateCallback
called by 0
src/Impetus.js
normalizeEvent
called by 0
src/Impetus.js
onDown
called by 0
src/Impetus.js
onMove
called by 0
src/Impetus.js

Shape

Function 18
Method 16
Class 2

Languages

TypeScript100%

Modules by API surface

src/Impetus.js19 symbols
docs/impetus.min.js17 symbols

For agents

$ claude mcp add impetus \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact