2010-08-02 16 views
18

Estoy creando un sitio web y permite a los usuarios cambiar las opciones de visualización. Uso jQuery para suavizar las animaciones para cambiar las fuentes. Se desvanece toda la página y vuelve a entrar con las nuevas fuentes.jQuery animación de opacidad

La animación de fundido está bien, pero cuando vuelve a fundirse, no hay fundido. Simplemente aparece, sin animación.

La problemática jQuery está en http://xsznix.my3gb.com/options.php.

El código que tengo hasta ahora es la siguiente:

$('#font-classic').click(function(){ 
    $(document.body).animate({opacity: '0%'},{duration: 1000, complete: function(){ 
     // font changing code here 
     $(document.body).animate({opacity: '100%'}, 1000); 
    }}); 
}); 

Respuesta

7

Por qué no usar jQuery 's funciones integradas fadeIn y fadeOut?

$('#font-classic').click(function(){ 
    $('body').fadeOut('normal', function(){ 
     $('body').fadeIn(); 
    }}); 
}); 
+0

supongo que pude, pero realmente no desea volver a hacer mis soportes de nuevo ... porque soy sólo eso perezoso. – xsznix

+0

@xsznix, es mucho más limpio también. 'animate' está destinado a ** animaciones ** personalizadas. –

+0

Supongo que tienes razón, lo haré. – xsznix

44

jQuery de .animate() toma valores 0-1.

$(document.body).animate({opacity: 0}, 1000); 
$(document.body).animate({opacity: 1}, 1000); 

Estoy seguro de que debe llamar .animate().parseFloat() (o algo así) en los valores que está pasando, lo que haría que su 0% en 0 (lo cual es correcto), pero su 100% en 100, lo que sería incorrecto.

+7

@xsznix - FYI '.animate()' se "significa" para cualquier animación que desee. No hay una regla sobre la costumbre frente a la no personalizada (lo que sea que eso signifique). Cuando llama a '.fadeOut()' está * directamente * llamando a '.animate()', por lo que está a un paso de su abstracción. Use lo que prefiera y no se deje influenciar por personas que inventen reglas arbitrarias. : o) – user113716

+0

Lo entiendo ... solo .animate() usa tantos bytes adicionales. : P – xsznix

+0

.fadeIn()/fadeOut() también es "más limpio" y, por lo tanto, es mucho más fácil de mantener. – xsznix

5

Puede utilizar funciones o menos así:

$(document.body).animate({ opacity: 1/2 }, 1000); 
Cuestiones relacionadas