paraboul / Between
Programming Languages
Labels
Between
Between
is JavaScript animation library providing Cocoa-like Animation block.
It was made possible thanks to ES6-Proxy.
I started to wrote this library as a Proof of Concept for the default Animation library for nidium project
Block-Based Animations
Animations block are a way to express animations in a declarative way. They are used in the Apple cocoa framework
Examples
var square = document.getElementById("my_div").style;
// The code inside the block only run once.
// Here `square` in the original one wrapped by a Proxy
Between.block(1000, Between.easing.Bounce.Out, (square /* Proxy wrapped element */) => {
/*
This block define the "end values".
Between will tween them from their initial values to the end values described here
*/
/* Set the end value for top and width. */
square.top = "0px";
square.width = "150px";
/*
Add 200 to the initial left value.
Here, it's the same than doing `square.left = "250px"`
*/
square.left += 200;
}, square /* original element */);
Swap the position of two elements. Just swap their left properties.
Between.block(3000, Between.easing.Elastic.Out, (square_one, square_two) => {
// Swap the left of the two element using destructuring array.
[square_one.left, square_two.left] = [square_two.left, square_one.left]
}, square_one, square_two); // Give any number of elements
Online demos
Supported browsers
Between
needs various ES6 features (Proxy, Spread syntax (rest parameters), arrow function) in order to work.
As of today, it seems to work on last release of major browsers and in the nidium project engine
Download
Usage
Include between.js in your page:
<script src="between.js"></script>
Animate any property (really anything as long as it's backed by a number)
Between.block(1000 /* duration in ms */, Between.easing.Bounce.Out /* Easing function */, (obj) => {
// Animate anything in `obj`
}, obj);
Available Easing function :
Linear.None
Quadratic.In
Quadratic.Out
Quadratic.InOut
Cubic.In
Cubic.Out
Cubic.InOut
Quartic.In
Quartic.Out
Quartic.InOut
Quintic.In
Quintic.Out
Quintic.InOut
Sinusoidal.In
Sinusoidal.Out
Sinusoidal.InOut
Exponential.In
Exponential.Out
Exponential.InOut
Circular.In
Circular.Out
Circular.InOut
Elastic.In
Elastic.Out
Elastic.InOut
Back.In
Back.Out
Back.InOut
Bounce.In
Bounce.Out
Bounce.InOut
License
Copyright 2017 Anthony Catel. All rights reserved. Use of this source code is governed by a MIT license that can be found in the LICENSE file.