2011-11-22 18 views
6

prima dare un'occhiata:.animate con una curva

enter image description here

Il gatto ha bisogno di muoversi per la x in una curva. (vedi la freccia)

Quando il gatto colpisce la x, dovrebbe rimanere 10 secondi, dopodiché il gatto dovrebbe tornare ao, ancora in una curva, e ripetere.

ho provato con questo codice:

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

curve(); 

Ma il gatto si muove in questo modo:

enter image description here

C'è un modo per ottenere il gatto a muoversi in questo tipo di curva ?

+0

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

+0

YUI fornisce anche il supporto per le animazioni curve. http://developer.yahoo.com/yui/examples/animation/control.html –

risposta

1

È possibile utilizzare facilitando il raggiungimento di tale, facendo un movimento composto:

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. 
      }}); 
     } 
    }); 
} 

Funziona dal jQuery 1.4, secondo a jQuery docs e gli easings menzionati richiedono l'interfaccia utente jQuery (ma solo il modulo Effect Core). Ogni account di chiamata .animate() per un quarto di un percorso di full circle e il contrario easeInQuad rispetto a easeOutQuad rende il percorso simile a un percorso circolare anziché direttamente alla nuova posizione.

+0

ciao matto! ho ricevuto questo errore nella mia console degli errori: Errore: f.easing [e.animatedProperties [this.prop]] non è una funzione File di origine: file: /// C:/Dokumente% 20und% 20Einstellungen/Amministratore/Desktop/tyler/js/js/jquery-1.6.4.min.js Linea: 4 – bernte

+0

Probabilmente è necessario includere l'interfaccia utente di jQuery (solo la parte di Effects Core), questo [file] (https://github.com/jquery/ jquery-ui/blob/master/ui/jquery.effects.core.js) in particolare. – matehat

0

C'è uno script molto piccolo, solo per l'animazione non in linea retta, chiamato pathAnimator

Problemi correlati