18 lines
367 B
JavaScript
18 lines
367 B
JavaScript
function animate({duration, draw, timing}) {
|
|
|
|
let start = performance.now();
|
|
|
|
requestAnimationFrame(function animate(time) {
|
|
let timeFraction = (time - start) / duration;
|
|
if (timeFraction > 1) timeFraction = 1;
|
|
|
|
let progress = timing(timeFraction)
|
|
|
|
draw(progress);
|
|
|
|
if (timeFraction < 1) {
|
|
requestAnimationFrame(animate);
|
|
}
|
|
|
|
});
|
|
}
|