Llevo algo asi como dos años con esto del javascript y siempre que me toca hacer un movimiento (mover un div, hacer un slide, una cambio de trasnparencia) siempre acabo haciendo una animacion con acabado bruscos.
Es decir, que cuando empieza la animacion comienza con 1 y cuando acaba termina con 1. Lo que me gustaria hacer es una animacion que incrementase su velocidad cuando mas le quede, y cuando se acerca el final decreciera. Como he visto que es mejor no jugar mucho con la velocidad en los JS... mejor lo estoy intentando en aumentar mas o menos pixel's... dependiendo de estar en un inicio o un final.
Es decir:
Código Javascript:
Ver original
function _move(what,actual,total) { actual=parseFloat(actual); total=parseFloat(total); //calculamos el incremento de velocidad (esta fatal hecho, y no va) increment=total/actual; actual=actual+(1*increment); if(actual>=total){//termino la animacion} else{ what.style.top=actual+'px'; setTimeout(function(){_move(what,actual,total)}, 1); } }
Es decir, lo que me gustaria hacer es lo tipico que hacen todos los slides, el reducir la velocidad al acercarse al fin de la animacion.
¿Sabeis como se hace?... me imagino que se hace dividiendo y creando un incremento en cada suma... pero no me sale!