Skip to content

Instantly share code, notes, and snippets.

@sebbdk
Created September 3, 2019 09:28
Show Gist options
  • Save sebbdk/efa8f8ee413fdb85062f29f41264bfe1 to your computer and use it in GitHub Desktop.
Save sebbdk/efa8f8ee413fdb85062f29f41264bfe1 to your computer and use it in GitHub Desktop.
Javascript - animate()
export function animate(cb, time) {
return new Promise((resolve, reject) => {
const startTime = performance.now();
const endTime = startTime + time;
function run() {
const currentTime = performance.now();
const deltaTime = currentTime - startTime;
const pctDone = deltaTime / time;
if (currentTime < endTime) {
if (cb(pctDone) !== false) {
window.requestAnimationFrame(run);
} else {
reject();
}
} else {
cb(1)
resolve();
}
}
window.requestAnimationFrame(run)
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment