Forum de discussion
Forum « Programmation Javascript » (archives)
Re: diaporama en continu
Envoyé: 16 avril 2004, 9h01 par Oznog
Il y a plusieurs ajustement à faire avec ton code.
1. Une matrice (array) commence toujours à zéro (0) et non pas à un. Ce qui peut causer d'autres problèmes.
diapo = new Array
diapo[0] = "Collines.gif";
diapo[1] = "soleilcouchant.gif";
diapo[2] = "Hiver.gif";
diapo[3] = "Nenuphars.gif";
// Je peux donc récupérer
// le nombre maximum.
var nMax = diapo.length;
2. Ensuite tu peux utiliser la même fonction :
function twJSShow(_nAjust) {
i+=_nAjust;
if (i <= -1) {
i = nMax-1;
} else if (i >= nMax) i = 0;
document.diapo1.src = diapo[i];
}
3. Et les boutons, note que tu n,as pas besoin d'utiliser un comprtement, donc tout simplement :
<center><a href="javascript:twJSShow(-1)">PRECEDENT</a>
<a href="javascript:twJSShow(+1)">SUIVANT</a></center>
Autre solution
Maintenant, tu utilise des images dans une matrce. Pourquoi ne pas utiliser l'objet image, normalisé mais les images seront préchargé. La syntaxe est toute fois quelque peut différente.
1. Créer les objets images
var i = 0;
diapo0 = new Image();
diapo0.src = "Collines.gif";
diapo1 = new Image();
diapo1.src = "soleilcouchant.gif";
diapo2 = new Image();
diapo2.src = "Hiver.gif";
diapo3 = new Image();
diapo3.src = "Nenuphars.gif";
// Récupérer le nombre maximum.
// Manuellement car il peut malheureusement
// y avoir d'autres images!
var nMax2 = 4;
2. Un peu plus complexe qu'une matrice, tu dois "évaluer" le nom de l'objet :
eval('diapo'+i+'.src');
3. Donc la fonction ajustéwe :
function twJSShow2(_nAjust) {
i+=_nAjust;
if (i <= -1) {
i = nMax-1;
} else if (i >= nMax) i = 0;
document.diapo1.src=eval('diapo'+i+'.src');
}
4. Toujours les même boutons :
<center><a href="javascript:twJSShow(-1)">PRECEDENT</a>
<a href="javascript:twJSShow(+1)">SUIVANT</a></center>
Ciao
Oznog
Réponses
|