Im tratando de animar múltiples divs, desvaneciéndose, uno tras otro en secuencia cuando se carga la página. También quiero hacerlo a la inversa, desvaneciéndome en secuencia, cuando hago clic para ir a otra página. ¿Cómo hago para configurar esto en jquery?Animate Divs One Right After the Other con Jquery
Respuesta
un poco difícil de darle una ejemplo, ya que hay tantas maneras de animar en jQuery, pero aquí hay un ejemplo simple. Animación de dos <div>
s, uno tras otro (en la carga de la página):
Ver ejemplo de trabajo aquí: http://jsfiddle.net/andrewwhitaker/p7MJv/
HTML:
<div id="animation-one">Hello!</div>
<div id="animation-two">Jquery Animate!</div>
CSS:
#animation-one,
#animation-two
{
opacity:0;
top: 30px;
width: 400px;
height: 100px;
background-color:#00CCCC;
font-size:35pt;
position:absolute;
}
#animation-one
{
background-color:#CCCC33;
top:130px;
}
JavaScript:
$("#animation-one").animate({
opacity:1.0}, 700,
function() {
// Callback function: This is called when 'animation-one'
// is finished.
$("#animation-two").animate({
opacity: 1.0
}, 700);
}
);
Esto es lo que está pasando:
- Dos
<div>
s están en la página con CSSopacity: 0
- Cuando se carga la página, el
<div>
con idanimation-one
está animado por un período de 700 milisegundos de la opacidad de 0 a opacidad 1 - Después de que la animación de
animation-one
ha finalizado, otra<div>
(con idanimation-two
) tiene una animación iniciada de forma similar.
Ahora, desapareciendo la <div>
s es similar.He asumido que su enlace simplemente dirige a otra página, por lo que he suspendido el seguimiento de ese enlace hasta que la animación se terminó:
Esto supone que tiene un enlace <a>
con un id de next-page
, pero realmente puedo ser cualquier selector:
HTML:
<a id="next-page" href="http://www.google.com">Google</a>
JavaScript:
$("#next-page").click(function($event) {
$event.preventDefault();
var href = $(this).attr("href");
$("#animation-two").animate({
opacity: 0}, 700,
function() {
// Callback function: This is called when 'animation-two'
// is finished.
$("#animation-one").animate({
opacity: 0}, 700,
function() {
// Direct the user to the link's intended
// target.
window.location = href;
});
})
});
Esto es lo que Happe Ning:
- Cuando se hace clic en el enlace con id
next-page
, una secuencia de animación similar al descrito anteriormente se produce, pero a la inversa. - Después de la última animación, el enlace se sigue correctamente.
Creo que ver el ejemplo en el enlace de arriba debería ayudar. Además, asegúrese de consultar los documentos para animate.
Espero que ayude!
Editar: Adición de un enlace a otro ejemplo ya que el PO quiere animar múltiples <div>
s a la vez: http://jsfiddle.net/andrewwhitaker/n3GEB/. Esto mueve el código común a las funciones y, con suerte, facilita la lectura del ejemplo.
+1 Para la explicación __huge__. – Fred
+1 De acuerdo ... :-) –
Tenga en cuenta que las funciones de animación jQuery toman una devolución de llamada como el parámetro final. Esta función se llama cuando la animación está completa. Comenzarías a animar el siguiente DIV en esta devolución de llamada. Otra opción sería fxQueues.
No hay una manera perfecta de invertir la animación al salir de la página. Se podía hacerlo por enlaces de una página haciendo algo en la línea de:
$("a").click(function()
{
var target = $(this).href;
// Do animation
// In the final completion callback, do
window.location.href = target;
});
(Nota no garantizo que esto funciona, es sólo pseudocódigo)
Consulte esta pregunta para ver un ejemplo de la función de devolución de llamada : http://stackoverflow.com/questions/668104/jquery-queueing-animations –
Me gustaría ver el uso de devoluciones de llamada y colas.
Tome un vistazo a esto:
jQuery queue events http://api.jquery.com/queue/
Esperanza este es un punto en la dirección correcta para usted.
- 1. RoR: has_one "or the other"? (O, polimorfismo sin la herencia.)
- 2. WPF Ribbon ApplicationMenu Alignment on the Right?
- 3. jQuery keypress left/right navigation
- 4. Cómo bucle .animate JQuery
- 5. jQuery - Usar .one() con el control deslizante
- 6. Usando .one() con .live() jQuery
- 7. jQuery: Animate Margins to Auto?
- 8. jQuery - Animate css background-size?
- 9. orden de cambio divs con jQuery
- 10. Ajustar 3 divs en uno con jQuery
- 11. jQuery animate scrollTop
- 12. Animate PNGs with jQuery?
- 13. Combinación de pseudo-elementos CSS, ": after" the ": last-child"
- 14. en gris divs con jQuery
- 15. deslizando divs horizontalmente con JQuery
- 16. Jquery animate bottom problema
- 17. jQuery animate .prepend
- 18. jQuery .animate() Problemas
- 19. jQuery Equal Height Divs
- 20. Animate cosas como en jQuery?
- 21. navegadores cruzados jquery animate scrollTop
- 22. Cambiar las posiciones de 2 divs con jQuery
- 23. jQuery Animate relleno a cero
- 24. eliminar 3 últimos divs con jQuery
- 25. ¿Cómo se recorta una imagen con carrierwave 'after the fact' en rieles?
- 26. jQuery reordenación divs
- 27. jquery - Colapsar/expandir divs?
- 28. Mostrar Ocultar DIVs: jQuery
- 29. SelectOneMenu updates other SelectOneMenu
- 30. Crear envoltorio div alrededor de otros dos divs con jQuery
A menos que desee frustrar a sus usuarios, no agregue ninguna animación entre ellos haciendo clic en un enlace y cargue la página siguiente. Las transiciones de MS (http://msdn.microsoft.com/en-us/library/ms532847%28v=vs.85%29.aspx) no despegaron por un motivo – micmcg