Probléme diapo

anass12345 Messages postés 2 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 2 août 2008 - 2 août 2008 à 04:18
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 3 août 2008 à 13:43
bonsoir,
j'essaie de faire une diapo d'image javascript qui défile une image chaque 5sec, avec deux boutons suivant et précédent,pour permettre le changement des images selon les besoins.
le souci c'est qu'on doit garder tjr le défilement auto aprés le clic sur suivant ou précédent et c'est la ke le problème apparait.
plus en détail, quand je clic sur le bouton précedent par exemple, l'image change, un timer du setTimer se charge aussi, mais cepedant y'a un autre timer tjr en cours, ce qui fait le changement de l'image en moins de 5sec.
j'ai essaié de mettre un clearTime, mais ça donne rien, l'idée que je veux faire c a chaque clic sur lebouton suivant ou précedent, stoper le timer automatique et lancer un autre
est ce possible?

3 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 août 2008 à 08:46
Bonjour,

>>est ce possible?
oui.
>>clearTime
ça n'existe pas ( peut-être clearTimeout ? )

tu as fait une recherche dans les sources ?
parce que les diaporama sont légions, et pourraient au moins te
servir de base pour que tu puisses contruire le tien comme tu l'entends.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
anass12345 Messages postés 2 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 2 août 2008
2 août 2008 à 13:50
Bonjour,

Le mien est déja construit, je me suis basé sur pas mal de sources que j'ai trouvé,le défilement auto marche bien , sauf que lorsque je clic sur suivant ou sur précédent, un autre setTimeout se déclenche en outre du premier ce qui génére un autre défilement d'image en moins de 5secondes.

voici le code que j'ai mis en place :

<HTML>
<head>
<title> Images défilante </title>






<SCRIPT LANGUAGE="JavaScript">

var compteur = 0;
var nbr_image = 3;
var timer=null;
window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);
var d=document, imgs = new Array(), zInterval = null, current=0, pause=false; txtdiv=null; imageholder=null; nIndex=-1; gOpacity=0; readmore=null;links=null;

function so_init() {
alert('so_init');

if(!d.getElementById || !d.createElement){
alert('document');
return;}

imageholder = d.getElementById("imageHolder");
//images
imgs = document.getElementById("imageContainer").getElementsByTagName("img");
autoIncrement(this.arg);

}

function decremente(arg)
{
compteur -- ;
clearTime(timer);
if (compteur == 0)
{
compteur = nbr_image-1;
}

imageholder.src = imgs[compteur].src;

timer = setTimeout("autoIncrement(this.arg)",5000);
}

function autoIncrement(arg){
clearTime(timer);
alert('incremente '+compteur);
if (compteur == (nbr_image))
{
compteur = 0;
}
imageholder.src = imgs[compteur].src;
compteur ++;
timer = setTimeout("autoIncrement(this.arg)",5000);
}

function incremente(arg)
{
clearTime(timer);
alert('incremente '+compteur);
if (compteur == (nbr_image))
{
compteur = 0;
}
imageholder.src = imgs[compteur].src;
compteur ++;

timer = setTimeout("autoIncrement(this.arg)",5000);
//so_init();
}

function clearTime(autoTimer){
alert('autoTimer avant --' +autoTimer);
//clearTimeout(autoTimer);
window.clearTimeout(autoTimer);
//autoTimer=null;
alert('autoTimer aprés --' +autoTimer);

}

</SCRIPT>
</head>

<FORM>
<center>


text1,

<code title="title1">

<code title="title2">

<code title="title3">

<code title="">










</center>
</FORM>

</HTML>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 août 2008 à 13:43
j'ai jeté un ch'tiot oeil, sans plus.

__ à quoi peut-bien correspondre les arg et this.arg utilisés ?
     enfin.. dans l'appel, pas dans les fonctions (?)

__ la fonction clearTime me semble inutile.

__ les variables sont-elles déclarées comme il faut et
     accessibles dans toutes le fonctions ? par exemple

__ tu te compliques la vie avec
      window.addEventListener?
                     window.addEventListener("load",so_init,false) :
                     window.attachEvent("onload",so_init);
      ça, on peut l'utiliser lorsque l'on fait un 'machin' général.. et encore (?!?)
      ici, normalement, tu maitrises tout... tu sais s'il existe déjà quelque chose dans le onload !
      windows.onload=function() { ... }  doit suffire.... largement !
...

et loin d'avoir tout décortiqué ( ! )

les debugger aident un ch'tiot peu, malgré tout !

FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site]     [M'écrire]
0
Rejoignez-nous