[dojo] convert JQUery animation to Dojo
Posted: 23 March 2013, 17:13
Bonjour à tous,
en espérant que l'un d'entre vous pourra m'aider...
j'ai commencé à regarder dojo cette semaine, et à tenter de convertir mes routines JQuery vers ce Framework.
Pour la plupart ca se passe bien , mais celle ci je n'arrive pas à la convertir proprement!
La routine qui suit marche très bien en JQuery: j'anime un déplacement de carte qui s'estompe au fur et à mesure (déplacement et opacité en même temps)
La deuxieme animation (qui s'effectue après la première) ramene rapidement en invisible l'image à son point de départ ( t=1ms, opacity 0.0 dans l'etat laissé par la première anim );
Or en tentant de passer cela sous dojo, deux problèmes apparaissent:
1) que je mette 'chain' ou 'combine', seule la deuxième animation est lancée. est ce que ma syntaxe est correcte?
2) si je supprime la deuxième animation, la première se joue ... mais s'effectue d'abord la translation ... puis l'opacité... or je voulais les deux en même temps...
ce qui marche en JQuery
Quelqu'un voit il une solution?
Ca me parait tout de même bien complexe la syntaxe dojo, par rapport au JQuery non?
en espérant que l'un d'entre vous pourra m'aider...
j'ai commencé à regarder dojo cette semaine, et à tenter de convertir mes routines JQuery vers ce Framework.
Pour la plupart ca se passe bien , mais celle ci je n'arrive pas à la convertir proprement!
La routine qui suit marche très bien en JQuery: j'anime un déplacement de carte qui s'estompe au fur et à mesure (déplacement et opacité en même temps)
La deuxieme animation (qui s'effectue après la première) ramene rapidement en invisible l'image à son point de départ ( t=1ms, opacity 0.0 dans l'etat laissé par la première anim );
Code: Select all
function CardMoveAnim(id)
{
var div = document.getElementById(id);
getActiveTablePlayer();
Y=TargetY-div.offsetTop;
X=TargetX-div.offsetLeft;
$(div)
.animate({ left:'+='+X+'px', top :'+='+Y +'px', opacity:0.0},"slow","swing")
.animate({ left:'-='+X+'px', top :'-='+Y +'px'},1);
}
1) que je mette 'chain' ou 'combine', seule la deuxième animation est lancée. est ce que ma syntaxe est correcte?
2) si je supprime la deuxième animation, la première se joue ... mais s'effectue d'abord la translation ... puis l'opacité... or je voulais les deux en même temps...
ce qui marche en JQuery
Code: Select all
function CardMoveAnim(id)
{
var div = dojo.byId(id);
var target= dojo.position(getTablePlayer(), true);
var start = dojo.position(div, true);
var dqy = dojo.query(div);
var deltaX= target.x - start.x;
var deltaY= target.y - start.y;
dojo.fx.chain(
[
dqy.animateProperty({ properties: { left: deltaX, top: deltaY, opacity:0.0}}),
dqy.animateProperty({ properties: { left: -deltaX, top: -deltaY}})
]).play();
//dojo.style(id,{"left":start.x,"top":start.y});
}
Ca me parait tout de même bien complexe la syntaxe dojo, par rapport au JQuery non?