2011-11-29 13 views
6

aquí es pequeño código¿Cómo funciona la función de animación jquery internamente?

<div id="clickme"> 
Click here 
</div> 
<img id="book" src="book.png" alt="" width="100" height="123" 
style="position: relative; left: 10px;" /> 

$('#clickme').click(function() { 
$('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 
}, 5000, function() { 
    // Animation complete. 
    }); 
}); 

es evidente a partir del código izquierda está aumentando y la opacidad será 0,25. cómo Jquery logra hacerlo ... hace jquery ejecutar internamente un bucle para aumentar el izquierdo y cambiar la opacidad hasta que se convierte en .25. necesita guía. gracias

+4

Compruebe por si mismo, https://github.com/jquery/jquery/blob/master/src/ effects.js # L124 – Andrew

Respuesta

5

Aumenta (o disminuye) gradualmente los valores en los períodos establecidos utilizando el temporizador. No puede usar un bucle porque si ese fuera el caso, bloquearía/congelaría el hilo principal de js mientras hacía eso y no vería la animación. Todo en js es (o debería ser) asincrónico, a través de eventos.

Cuestiones relacionadas