Probleme de boucle

Résolu
jfnoe Messages postés 15 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 11 janvier 2011 - 23 avril 2009 à 15:14
jfnoe Messages postés 15 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 11 janvier 2011 - 25 avril 2009 à 10:43
Bonjour,
Je voudrais utiliser un script de fondu d'image mais je n'arrive pas à le mettre en boucle.
Le script s'éxécute correctement mais j'ai une erreur à la fin.
J'ai essayer de faire une boucle avec FOR, mais ca ne marche pas non plus.

Voici le code :

var visuel_n=0;
function Visuel_Fondu()
{
 if(document.all)
 {
  document.getElementById("visuel_" + VisuelPosChange).filters.alpha.opacity=visuel_n;
  visuel_n+=5;
  if ( visuel_n<= 100 )
  {
   setTimeout("Visuel_Fondu()", 50);
   return 0;
  }
 }
 else
 {
  document.getElementById("visuel_" + VisuelPosChange).style.setProperty("-moz-opacity", visuel_n, "");
  visuel_n+=0.05;
  if ( visuel_n<= 1 )
  {
   setTimeout("Visuel_Fondu()", 50);
   return 0;
  }
 }
 visuel_n=0;
 document.getElementById("visuel").style.background="url('" + VisuelTab[VisuelPosChange][0] + "') -4px 0px no-repeat";
 setTimeout("Visuel_Clear()", 100); //supprime clignotement sous FF
 //document.getElementById("visuel").innerHTML="";
 //setTimeout("Visuel_Defil()", 3000);
}
function Visuel_Clear()
{
 document.getElementById("visuel").innerHTML="";
 setTimeout("Visuel_Defil()", 3000);
}
var VisuelPos=0;
var VisuelPosChange;
function Visuel_Defil()
{
 VisuelPosChange=VisuelPos; 
 VisuelPos++;
 if ( VisuelTab.length <= VisuelPos )
  VisuelPos=0;
  
 if ( VisuelTab[VisuelPosChange][1] == 1 )
  document.getElementById("visuel").innerHTML+="";
 else
 {
  setTimeout("Visuel_Defil()", 10);
  return 0;
 }
 Visuel_Fondu();
}




var VisuelTab = [
 ["image1.jpg",1],
 ["image2.jpg",1],
 ["image3.jpg",1],
];
Visuel_Defil();




Merci d'avance pour votre aide.

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
25 avril 2009 à 09:19
Bonjour,
Tu bosses surement avec IExplorer...
Ce n'est pas un problème de boucle
mais de déclaration de tableau
ta déclaration
var VisuelTab = [
 ["image1.jpg",1],

 ["image2.jpg",1],
 ["image3.jpg",1] ,

];
IExplorer retournera une longueur de tableau de 4,
les autres 3, le dernier après la virgule et non défini, n'étant pas pris en
compte.

Comme tu testes
if ( VisuelTab.length < = VisuelPos )
cela plante sur le
dernier indice.
Supprimes la dernière virgule ou testes si l'élément est
défini
if(
VisuelTab[VisuelPosChange] && VisuelTab[VisuelPosChange][1] == 1
)
dans ce cas attention à l'incrémentation de la variable VisuelPos sur le dernier passage.

;O)
3
cs_leris Messages postés 419 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 19 avril 2010 3
24 avril 2009 à 13:14
Salut,

impossible de tester sans les elements du "body"

L.
0
jfnoe Messages postés 15 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 11 janvier 2011
24 avril 2009 à 14:21
Dans le DODY, il suffit de mettre à l'endroit ou l'on veut l'animation :

<script type="text/javascript" src="fondu.js"></script>

"width: 200" et "height: 200" correspondent à la taille des 3 images.

Le script du 1er message étant dans un fichier "fondu.js".

Merci Leris de prendre le temps d'y jeter un oeil.
JF

PS : Je ne sais pas si on peut joindre les fichiers, cela aurait été plus simple.
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
24 avril 2009 à 20:23
tu peut toujour essayer cette source simple a mettre en oeuvre

http://www.javascriptfr.com/codes/DIAPO-FONDU-ENCHAINE_48063.aspx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jfnoe Messages postés 15 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 11 janvier 2011
25 avril 2009 à 10:43
Excellent !


Il suffisait d’enlever la virgule en effet.


Merci PetoleTeam.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


 
0
Rejoignez-nous