JavaScript: creare animazioni senza usare una libreria

Con JavaScript possiamo creare le nostre animazioni senza utilizzare una libreria.

JavaScript di Gabriele Romanato

Con JavaScript possiamo creare le nostre animazioni senza utilizzare una libreria.

Possiamo implementare la seguente soluzione:


// Funzione helper

var extend = function( target, source ) {
    var a = Object.create( target );
    Object.keys( source ).map(function ( prop ) {
        prop in a && ( a[prop] = source[prop] );
    });
    return a;
};

// Animazione

var animate = function( opts ) {

	var defaults = {
		delay: 10, // Ritardo
		duration: 1000, // Durata complessiva
		easing: function( p ) { // Funzione di easing
			return p; // Easing lineare predefinito
		},
		step: function( d ) {} // Ad ogni iterazione la modifica della proprietà CSS
	};

	opts = extend( defaults, opts );


	var start = new Date(); // Tempo iniziale

	var id = setInterval(function() {
		var timePassed = new Date() - start; // Tempo trascorso
		var progress = timePassed / opts.duration; // Avanzamento: da 0 a 1

		if( progress > 1 ) {
			progress = 1;
		}
		var delta = opts.easing( progress ); // Valore di easing
		opts.step( delta ); // Modifica del valore della proprietà CSS

		if( progress == 1 ) {
			clearInterval( id );
		}

	}, opts.delay || 10);
};

Demo

JavaScript: self-made animation

Commenti