2011-11-22 17 views
6

Primero echar un vistazo:.animate con una curva

enter image description here

El gato necesita para pasar a la x en una curva. (vea la flecha)

Cuando el gato golpea la x, debe permanecer 10 segundos, y luego el gato debe volver a o, nuevamente en una curva, y repetir.

he probado con este código:

function curve() { 
    $('#cat').delay(10000).animate({top: '-=20',left: '-=20'}, 500, function() { 
     $('#cat').delay(10000).animate({top: '+=20', left: '+=20'}, 500, function() { 
      curve(); 
     }); 
    }); 
} 

curve(); 

Pero el gato se está moviendo de esta manera:

enter image description here

¿Hay una manera de conseguir que el gato para mover en este tipo de curva ?

+0

http://stackoverflow.com/questions/2240052/how-would-you-animate-something-so-that-it- follows-a-curve – RightSaidFred

+0

YUI también proporciona soporte para animaciones curvas. http://developer.yahoo.com/yui/examples/animation/control.html –

Respuesta

1

Puede utilizar aliviando para lograr que, al hacer un movimiento compuesto:

function curve() { 
    $('#cat').delay(10000).animate({top: "+=20px", left: "+=20px"}, { 
     duration: 500, 
     specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'}, 
     complete: function() { 
     $('#cat').animate({top: "-=20px", left: "+=20px"}, { 
      duration: 500, 
      specialEasing: {top: 'easeInQuad', left: 'easeOutQuad'}, 
      complete: function() { 
      // repeat the other way around. 
      }}); 
     } 
    }); 
} 

Funciona desde jQuery 1.4, de acuerdo a jQuery docs y las facilidades mencionadas requieren jQuery UI (pero solo el módulo Effect Core). Cada llamada .animate() representa un cuarto de una ruta de círculo completo, y la inversa easeInQuad frente a easeOutQuad hace que la ruta parezca una ruta circular en lugar de recta a la nueva posición.

+0

¡Hola matehat! Obtuve este error en mi consola de error: Error: f.eando [e.animatedProperties [this.prop]] no es una función Archivo de origen: file: /// C:/Dokumente% 20und% 20Einstellungen/Administrator/Desktop/tyler/js/js/jquery-1.6.4.min.js Línea: 4 – bernte

+0

Es probable que necesite incluir jQuery UI (solo la parte del núcleo de efectos), este [archivo] (https://github.com/jquery/ jquery-ui/blob/master/ui/jquery.efectos.core.js) en particular. – matehat

0

Hay un pequeño script, sólo para animación no en línea recta, llamados pathAnimator