Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/component/tween

Motion tween engine using "ease"
https://github.com/component/tween

Last synced: 12 days ago
JSON representation

Motion tween engine using "ease"

Awesome Lists containing this project

README

        

# tween

Motion tween component using [ease](https://github.com/component/ease).

## Installation

$ component install component/tween

## Example

```js
var Tween = require('tween');
var raf = require('raf');
var button = document.querySelector('button');

var tween = Tween({ rotate: 0, opacity: 0 })
.ease('out-bounce')
.to({ rotate: 360, opacity: 1 })
.duration(800);

tween.update(function(o){
button.style.opacity = o.opacity;
button.style.webkitTransform = 'rotate(' + (o.rotate | 0) + 'deg)';
});

tween.on('end', function(){
animate = function(){};
});

function animate() {
raf(animate);
tween.update();
}

animate();
```

## API

### Tween(obj:Object|Array)

Initialize a new `Tween` with `obj`.

### Tween#reset()

Reset the tween.

### Tween#to(obj:Object|Array)

Tween to `obj` and reset internal state.

tween.to({ x: 50, y: 100 })

### Tween#duration(ms:Number)

Set duration to `ms` [500].

### Tween#ease(fn:String|Function)

Set easing function to `fn`.

tween.ease('in-out-sine')

### Tween#update(fn:Function)

Set update function to `fn` or
when no argument is given this performs
a "step".

### Tween#stop()

Immediately stop the tween and emit "stop" and end" events. `tween.stopped`
is then marked as `true`.

## License

MIT