2011-10-26 23 views
5

Sto sbattendo la testa contro un muro con questo. Ho raphael js versione 2.0 e ho bisogno di far girare le immagini in un modo che è cross-browser. Mi piacerebbe farlo in CSS3, ma non tutti i browser supportano ciò che devo fare.RaphaelJS rotazione non funzionante

così, dopo aver tormentato il cervello, sono andato al parco giochi di Raphael e ho provato un po 'di codice. Non funziona neanche lì. Cosa sta succedendo qui?

andare al campo da gioco: http://raphaeljs.com/playground.html eseguire questo codice, dovrebbe vedere un contorno di un quadrato. paper.rect (100, 100, 300,300) .animate ({rotation: "- 45"}, 2000);

utilizzando opere transform:

paper.rect (100, 100, 300,300) .animate ({trasformare: "R45"}, 2000);

ma sfortunatamente con trasformazione, non riesco a specificare un punto centrale. Voglio che l'oggetto ruoti fuori dall'angolo in basso a sinistra. Posso farlo con questo codice:

paper.rect (100, 100, 300,300) .rotate (45,0,300)

ma che non animare, o accettare allentamento, o in caso di callback.

ho visto "rotazione" in diversi esempi, tra cui questi:

http://www.irunmywebsite.com/raphael/additionalhelp.php#PAGETOP http://net.tutsplus.com/tutorials/javascript-ajax/an-introduction-to-the-raphael-js-library/

grazie, - keith

+0

Questo funziona ancora: http://raphaeljs.com/image-rotation.html – topek

risposta

3

L'attributo di rotazione sembra mancare dalla specifica 2.0. Esisteva in 1.x. Non so perché sia ​​così, ma non riesco a trovarlo nella nuova documentazione. Mi aspetto che questa sia una svista che verrà corretta in una revisione minore in corso.

Nel frattempo, è possibile creare il proprio gestore di animazione e chiamare .rotate su ogni tick in base al proprio andamento.

+0

grazie, ho avuto la sensazione che mancasse qualcosa. Risulta che l'effetto è stato rimosso dalle specifiche. Ritengo che questa sia stata una buona esperienza di apprendimento e ringrazio tutti per le risposte. – keith73

11

Andando alla playground site e incollando questo codice:

paper.rect(100, 100, 300,300).animate({transform:"r-45,0,0"}, 2000); 

ruota il rettangolo dal 0,0 posizione assoluta. Vedere codice raphael js @github, che mostra che transform può prendere 2 o 4 parametri per ottenere una rotazione.