Comment faire défiler des images 1 par 1 par lot ?
voila, j'ai 3 lots de 3 ou 4 images que j'aimerais faire défilés une par une
pour facilier ta comprehension 11.jpeg est la premiere du premier lot. 12.jpeg, la 2ème image du premier lot.
position de départ : 11.jpeg 21.jpeg 31.jpeg
2 secondes apres : 12.jpeg 21.jpeg 31.jpeg
2 secondes apres : 12.jpeg 22.jpeg 31.jpeg
2 secondes apres : 12.jpeg 22.jpeg 32.jpeg
2 secondes apres : 13.jpeg 22.jpeg 32.jpeg
2 secondes apres : 13.jpeg 23.jpeg 32.jpeg
2 secondes apres : 13.jpeg 23.jpeg 33.jpeg
....... |
Bref, l'image de gauche défile puis apres c'est au tour de l'image du millieu, puis celle de droite et on recommence, l'image de gauche défille.
Dans du javascript, j'ai chargé mes images :
Code :
- var image = new Array();
- image[0] = new Array();
- image[0][0] = new Image(); image[0][0].src= '11.jpeg'
- image[0][1] = new Image(); image[0][1].src= '12.jpeg'
- image[0][2] = new Image(); image[0][2].src= '13.jpeg'
- image[0][3] = new Image(); image[0][3].src= '14.jpeg'
- image[1] = new Array();
- image[1][0] = new Image(); image[1][0].src= '21.jpeg'
- image[1][1] = new Image(); image[1][1].src= '32.jpeg'
- image[1][2] = new Image(); image[1][2].src= '33.jpeg'
- image[2] = new Array();
- image[2][0] = new Image(); image[2][0].src= '31.jpeg'
- image[2][1] = new Image(); image[2][1].src= '32.jpeg'
- image[2][2] = new Image(); image[2][2].src= '33.jpeg'
|
puis apres je créé un tableau compteur pour chaque lot. Je pense utilisé cette variable pour faire défilé les images de chaque lots. Chaque lot a besoin de son propre compteur car tous les lots n'ont pas le meme nombre d'image. Ici le premier lot a 4 images (image[0].length) alors 2ème et 3ème ont 3 images.
Code :
- var nb_lots_images = 3
- var compteur_images = new Array();
- for (var j = 0 ; j < nb_lots_images ; j++)
- {
- compteur_images[j] = 0;
- }
|
Et voici la fonction d'animation :
Code :
- function affichage (j,k)
- {
- document.images[j].src = image[j][k].src;
- }
- function Animation()
- {
- var k;
- if(i > 3) i = 0;
- //j est le numéro du lot
- //k est le numéro de l'image dans le lot
- for (var j = 0 ; j < nb_lots_images ; j++ )
- {
- k = compteur_images[j];
- window.setTimeout("affichage(j,k)",2000);
- compteur_images[j]++;
- if (compteur_images[j] > image[j].length)
- compteur_images[j] = 0
- }
- i = i + 1;
- window.setTimeout("Animation()",2000);
- }
- window.setTimeout("Animation()",2000);
|
Mais voila, je n'arrive pas à faire défiler une par une.
Lorsque je mets directement document.images[j].src = image[j][k].src; dans la boucle for, les lots défilent en meme temps.
J'ai donc essayé d'utiliser une fonction intermédiaire ( affichage (j,k) ) avec un setTimeout mais cela ne fonctionne plus du tout maintenant.
Que puis je faire ?
Ais je été suffisamment explici
te ?
Message édité par weed le 07-10-2005 à 17:49:39