Felicidades Isaac

Para celebrar el cumpleaños de Sir Isaac Newton, Google ha incluido un logo que tiene ramas y unas manzanas. A los 2 segundos de haber cargado la página, una manzana se cae de la rama… Una idea muy bonita, y con un código minimalista. No sé si Google usará alguna suerte de compresor de código (de otros o propio) pero la verdad es que queda bonito:

setTimeout(function(){var h=0,v=1,f=document.getElementById('fall'),i=setInterval(function(){if(f){var r=parseInt(f.style.right)+h,b=parseInt(f.style.bottom)-v;f.style.right=r+'px';f.style.bottom=b+'px';if(b>-210){v+=2}else{h=(v>9)?v*0.1:0;v*=(v>9)?-0.3:0}}},25);google.rein&&google.rein.push(function(){clearInterval(i);h=0;v=1})},2000)

Que podríamos desenredar como:
setTimeout(
function(){
var h=0
v=1
f=document.getElementById('fall')
i=setInterval(
function(){
if(f){
var r=parseInt(f.style.right)+h
b=parseInt(f.style.bottom)-v
f.style.right=r+'px';
f.style.bottom=b+'px';
if(b>-210){
v+=2
}else{
h=(v>9)?v*0.1:0;
v*=(v>9)?-0.3:0
}
}
}
,25);
google.rein&&google.rein.push(
function(){
clearInterval(i);
h=0;
v=1
}
)
}
,2000
)

Que es una bonita y elegante forma de hacer esta animación junto con el rebote (v*=(v>9)?-0.3:0). Tengo curiosidad por saber qué hace google.rein.push y cual es el objetivo del objeto google.rein… ¿Alguna idea? Después de 10 minutos tirando del hilo no me ha quedado claro; y tengo mejores cosas que hacer hoy :)

Ah, Feliz Año 2010

 

Leave a Reply