A Promise wrapper around gsap, based on the npm package gsap-promise created by Matt DesLauriers that use TweenMax.
require('gsap/src/minified/TweenLite.min.js');
const animate = require('gsap-lite-promise')(Promise, TweenLite);
Promise.all([animate(element, 1.0, { x: 10 }), animate(element, 1.0, { y: 10, delay: 0.5 })]).then(function() {
console.log('all animations finished');
});
const litePromise = require('gsap-lite-promise');
const animate = litePromise(Promise, TweenModule);
Select your favorite Promise framework and send it as an argument.
Send TweenMax or TweenLite. Instead of work with an internal version of gsap
, maybe different than the one you are currently using in your project, just send your version and we will promisify that gsap module.
Customizing the GSAP implementation to use the built in minified sources and adding a staggerTo
the implementation.
require('gsap/src/minified/plugins/CSSPlugin.min.js');
require('gsap/src/minified/plugins/ScrollToPlugin.min.js');
require('gsap/src/minified/TweenLite.min.js');
const animate = require('gsap-lite-promise')(Promise, window.TweenLite);
animate.staggerTo = function(els, duration, props, delay) {
return Promise.all(
els.map((el, i) =>
animate.to(el, duration, {
...props,
delay: props.delay + delay * i
})
)
);
};
2.0.0 Was removed Bluebird like strict dependency so in order to use it you should pass your prefer Promise implementation to the lib.
This promisifies the TweenLite
methods: to
, from
, set
and fromTo
.
Matches the TweenLite methods by the same name, but returns a Promise for the onComplete event.
An alias for Promise.all
, which will trigger all tweens in parallel.
The default export is the same as animate.to
.
If you want to use the greensock easing for example or the CSSPlugin to animate CSS properties, you can add those separately, the goal of this is being the lightest posible.
require('gsap/src/uncompressed/easing/EasePack');
require('gsap/src/uncompressed/plugins/CSSPlugin');
MIT, see LICENSE.md for details.