Skip to content

Instantly share code, notes, and snippets.

@roboshoes
Last active January 25, 2018 18:19
Show Gist options
  • Select an option

  • Save roboshoes/cf7ba9b83aca2396dcabb65f49d42249 to your computer and use it in GitHub Desktop.

Select an option

Save roboshoes/cf7ba9b83aca2396dcabb65f49d42249 to your computer and use it in GitHub Desktop.

Revisions

  1. roboshoes revised this gist Nov 28, 2016. 1 changed file with 2 additions and 5 deletions.
    7 changes: 2 additions & 5 deletions tween.js
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@ export function tween( time, update ) {

    if ( delta >= 1 ) {
    isComplete = true;
    update(1);
    update( 1 );
    chain.forEach( callback => callback() );
    } else {
    update( delta );
    @@ -30,10 +30,7 @@ export function tween( time, update ) {
    },

    after( callback ) {
    if ( isComplete ) callback();
    else {
    chain.push( callback );
    }
    isComplete ? callback() : chain.push( callback );
    },

    isComplete() {
  2. roboshoes created this gist Nov 28, 2016.
    43 changes: 43 additions & 0 deletions tween.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    export function tween( time, update ) {
    const start = Date.now();

    var isCanceled = false;
    var isComplete = false;

    var chain = [];

    function loop() {
    if ( isCanceled ) return;

    const difference = Date.now() - start;
    const delta = difference / time;

    if ( delta >= 1 ) {
    isComplete = true;
    update(1);
    chain.forEach( callback => callback() );
    } else {
    update( delta );
    requestAnimationFrame( loop );
    }
    }

    requestAnimationFrame( loop );

    return {
    cancel() {
    isCanceled = true;
    },

    after( callback ) {
    if ( isComplete ) callback();
    else {
    chain.push( callback );
    }
    },

    isComplete() {
    return isComplete;
    }
    };
    }