Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Dojo
Dojo Forum d'entraide sur le framework Dojo
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2011, 11h09   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 15
Points : 11
Points : 11
Par défaut AnimateProperty, Combine et onEnd

Bonjour, j'ai un soucis avec Dojo (avec lequel je débute) et ces animations.
Je cherche a faire un effet de défilement d'image verticale infinie à partir d'une liste (UL/LI).
Pour ceci, je fais une boucle sur chaque enfant de mon UL et je stock la préparation des animations dans un array pour le combiner ensuite dans le but que chaque anim se lance en simultanné.
Une fois chaque animation terminé (onEnd) je veux vérifier si le LI est encore visible pour, dans le cas contraire, le passer en fin de UL avec place.

Le soucis c'est que j'ai l'impression que le onEnd ne garde en mémoire que ce que je lui ai paramétré dans la dernière animation de la boucle...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function lanceCol(objColonne) {
    var listLi = dojo.query('ul li', objColonne) ; // Selectionne les LI dans la colonne voulu
    var nbLi = listLi.length ; // Compte le nombre de LI
    var arrAnim = new Array() ; // Crée l'array de stockage
    // Pour chaque LI
    for(var numero=0; numero<nbLi; numero++) {
        var li=listLi[numero] ; // On récupère le LI pour une meilleur lisibilité
        var offsettop = dojo.style(li, 'top') ; // Récupére la position actuelle
        var neuOffset = offset + offsettop ; // Calcul la position finale
        // Crée l'animation et la stock
        arrAnim[numero] = dojo.animateProperty({
            node : li,
            properties: {top: neuOffset},
            duration:duree,
            onEnd: function(){
                console.log(numero) ;
                // place(li, dojo.query('ul', objColonne, 'last') ;
            }
        }) ;
    }
    var anime = dojo.fx.combine(
        arrAnim
    ) ;
    return anime ;
}
 
dojo.ready(function(){
var anim = lanceCol(__selectedCols__) ;
anim.play() ;
}) ;
Pour le test, j'ai simplement crée une liste UI/LI avec 10 enfants et lors du lancement de la fonction, dans firebug/console, je n'ai que des 9 qui ressortent des fonctions onEnd. Il ressort le bon nombre de fois mais toujours à 9, 9 représentant donc uniquement le dernier LI parmi tout ceux de l'animation.

En gros, je voudrais avoir un event onEnd pour chaque animation malgré le combine. Je ne sais pas si c'est 'impossible' dans le sens ou le combine 'mergerait' toute les animations en une seule, ne laissant ainsi qu'un seul onEnd ou si c'est simplement une erreur de ma part niveau algo.

Précision : j'ai testé avec beforeBegin et onBegin et les résultats sont les même : dans la console, il ne me retourne que le dernier événement.

Si quelqu'un a une idée, je suis preneur
gnappy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 09h06   #2
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 313
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 313
Points : 439
Points : 439
Bonjour,

Avez vous pensé à regarder du côté des widgets disponibles avec Dojo ?
Il me semble que le thumbNailPicker correspond à ce que vous souhaitez faire (si j'ai bien compris).
Daniel_Gibot est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h24.


 
 
 
 
Partenaires

Hébergement Web