Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2955 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Faire défiler un lot d'images

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire défiler un lot d'images

n°1215685
weed
Posté le 05-10-2005 à 16:35:04  profilanswer
 

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 :
  1. var image = new Array();
  2. image[0] = new Array();
  3. image[0][0] = new Image();  image[0][0].src= '11.jpeg'
  4. image[0][1] = new Image(); image[0][1].src= '12.jpeg'
  5. image[0][2] = new Image(); image[0][2].src= '13.jpeg'
  6. image[0][3] = new Image(); image[0][3].src= '14.jpeg'
  7. image[1] = new Array();
  8. image[1][0] = new Image();  image[1][0].src= '21.jpeg'
  9. image[1][1] = new Image(); image[1][1].src= '32.jpeg'
  10. image[1][2] = new Image(); image[1][2].src= '33.jpeg'
  11. image[2] = new Array();
  12. image[2][0] = new Image();  image[2][0].src= '31.jpeg'
  13. image[2][1] = new Image(); image[2][1].src= '32.jpeg'
  14. 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 :
  1. var nb_lots_images = 3
  2. var compteur_images = new Array();
  3. for (var j = 0 ; j < nb_lots_images ; j++)
  4. {
  5. compteur_images[j] = 0;
  6. }


 
 
 
 
Et voici la fonction d'animation :
 

Code :
  1. function affichage (j,k)
  2. {
  3. document.images[j].src = image[j][k].src;
  4. }
  5. function Animation()
  6. {
  7. var k;
  8. if(i > 3) i = 0;
  9. //j est le numéro du lot
  10.         //k est le numéro de l'image dans le lot
  11. for (var j = 0 ; j < nb_lots_images ; j++ )
  12. {
  13.  k = compteur_images[j];
  14.  window.setTimeout("affichage(j,k)",2000);
  15.  compteur_images[j]++;
  16.  if (compteur_images[j] > image[j].length)
  17.   compteur_images[j] = 0
  18. }
  19. i = i + 1;
  20. window.setTimeout("Animation()",2000);
  21. }
  22. 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
mood
Publicité
Posté le 05-10-2005 à 16:35:04  profilanswer
 

n°1215785
mansour
Posté le 05-10-2005 à 17:41:51  profilanswer
 


je suis desolé mais je ne comprends pas le javascript (
 
je te souhaite une bonne chance
 

n°1215812
weed
Posté le 05-10-2005 à 18:08:49  profilanswer
 

oki, merci mansour
 
pour les autres, ceux qui connaissent le JS, est ce que j'ai été sufissemment explicite ?

n°1215826
omega2
Posté le 05-10-2005 à 18:38:07  profilanswer
 

Oui, et vu ton code, c'est normal que ca change pour tous les groupes d'images vu que c'est qu'est défini comme comportement du code.
Si tu veux pas ça, alors ne boucle pas sur les lots mais utilise plustôt la variable i pour savoir avec quel lot travailler.

n°1215833
gatsusat
Posté le 05-10-2005 à 18:50:01  profilanswer
 

hey topaing weed, tu veux une technique toute conne ???
 
<div id="defilimg">
<img src="truc1.jpg'>
<img src="truc2.jpg'>
<img src="truc3.jpg'>
<img src="truc4.jpg'>
<img src="truc5.jpg'>
</div>
 
ensuite avec un script fait scroller sur la droite ton bordel, soit au pixel, soit par tranches de 30 px. ou de largeurIMGpx
 
bien entendu ton div il est en overflow:hidden
 
stu veux jte fais le script, même si bien sur tu n'aimes pas qu'on te fasse tout

n°1215925
omega2
Posté le 05-10-2005 à 20:03:23  profilanswer
 

gatsusat > Pourquoi je vois pas le rapport entre ce que tu proposes et ce qu'il demande?

n°1217352
weed
Posté le 07-10-2005 à 10:52:22  profilanswer
 

bon alors voilou, s'il faut que je supprime ma boucle for.
je pense que le code est bon mais cela ne fonctionne pas ...
 
La console JS de firefox m'indique :  

Citation :

document.images[i] has no properties


 
kesako ?
 

Code :
  1. <html>
  2. <head></head>
  3. </script>
  4.  
  5. <body>
  6. <img name='image1' src='11.jpeg'>
  7. <img src='21.jpeg'>
  8. <img src='31.jpeg'>
  9. <script type='text/javascript'>
  10. <!--
  11. var image = new Array();
  12. image[0] = new Array();
  13. image[0][0] = new Image();  image[0][0].src= '11.jpeg'
  14. image[0][1] = new Image(); image[0][1].src= '12.jpeg'
  15. image[0][2] = new Image(); image[0][2].src= '13.jpeg'
  16. image[0][3] = new Image(); image[0][3].src= '14.jpeg'
  17. image[1] = new Array();
  18. image[1][0] = new Image();  image[1][0].src= '21.jpeg'
  19. image[1][1] = new Image(); image[1][1].src= '32.jpeg'
  20. image[1][2] = new Image(); image[1][2].src= '33.jpeg'
  21. image[2] = new Array();
  22. image[2][0] = new Image();  image[2][0].src= '31.jpeg'
  23. image[2][1] = new Image(); image[2][1].src= '32.jpeg'
  24. image[2][2] = new Image(); image[2][2].src= '33.jpeg'
  25. var nb_lots_images = 3
  26. var compteur_images = new Array();
  27. var p1 = 0;
  28. var i = 0;
  29. for (var j = 0 ; j < nb_lots_images ; j++)
  30. {
  31. compteur_images[j] = 0;
  32. }
  33. function Animation()
  34. {
  35. if(i > nb_lots_images) i = 0;
  36. p1 = compteur_images[i];
  37. document.images[i].src = image[i][p1].src;
  38. compteur_images[i]++;
  39. if (compteur_images[i] > 2)
  40.  compteur_images[i] = 0
  41. i = i + 1;
  42. window.setTimeout("Animation()",2000);
  43. }
  44. window.setTimeout("Animation()",2000);
  45. //-->
  46. </script>
  47. </body>
  48. </html>


n°1217548
weed
Posté le 07-10-2005 à 13:04:55  profilanswer
 

[:aurel74]

n°1217935
weed
Posté le 07-10-2005 à 17:49:10  profilanswer
 

bon j'ai presque trouvé.  
 
mes images défilent bien de gauche à droite  
 
meme si vous avez été extremement méchant parce que vous vouilliez pas m'aider voici mon code :
 

Code :
  1. <html>
  2. <head></head>
  3. </script>
  4. <body>
  5. <img name='image1' src='14.jpeg'>
  6. <img src='23.jpeg'>
  7. <img src='33.jpeg'>
  8. <script type='text/javascript'>
  9. <!--
  10. var image = new Array();
  11. image[0] = new Array();
  12. image[0][0] = new Image();  image[0][0].src= '11.jpeg'
  13. image[0][1] = new Image(); image[0][1].src= '12.jpeg'
  14. image[0][2] = new Image(); image[0][2].src= '13.jpeg'
  15. image[0][3] = new Image(); image[0][3].src= '14.jpeg'
  16. image[1] = new Array();
  17. image[1][0] = new Image();  image[1][0].src= '21.jpeg'
  18. image[1][1] = new Image(); image[1][1].src= '22.jpeg'
  19. image[1][2] = new Image(); image[1][2].src= '23.jpeg'
  20. image[2] = new Array();
  21. image[2][0] = new Image();  image[2][0].src= '31.jpeg'
  22. image[2][1] = new Image(); image[2][1].src= '32.jpeg'
  23. image[2][2] = new Image(); image[2][2].src= '33.jpeg'
  24. var i = 0;    /* i est le nombre d'image dans la séquence */
  25. var img = 0; /* img = 3 est le nombre de lots d'image max */
  26. var nb_image = 2
  27. var compteur = new Array();
  28. for (var k=0 ; k <= nb_image ; k++)
  29. compteur[k]=0;
  30. function Animation()
  31. {
  32. if(img > nb_image) img = 0;
  33. if(compteur[img] > ((image[img].length)-1) ) { compteur[img] = 0;  }
  34. document.images[img].src = image[img][compteur[img]].src;
  35. compteur[img] = compteur[img] + 1;
  36. img = img + 1;
  37. window.setTimeout("Animation()",1000);
  38. }
  39. window.setTimeout("Animation()",1000);
  40. //-->
  41. </script>
  42. </body>
  43. </html>

n°1217942
omega2
Posté le 07-10-2005 à 17:52:27  profilanswer
 

Y a quoi d'autre qu'a changé a par le i transformé en img?
J'arrive pas à voir les différences.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Faire défiler un lot d'images

 

Sujets relatifs
Superposition images htmlRollover differants sur plusieur images ?? (avec des exemples...)
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageLa meilleur méthode pour placer des images?
HELP : images EXCEL/VBA en enregistrant sous format HTMLblabla@web
Problème de marge avec des imagesDéfaut d'affichage dans les images
Faire défiler des images...[ JS sans doute :D ] faire defiler la page avec une images...
Plus de sujets relatifs à : Faire défiler un lot d'images


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR