Chemin SRC
Bonjour à tous,
Etant novice en javascript' j'aurais besoin d'un conseil pour modifier une fonction SRC' mais je ne sais pas si cela est possible.
Voila je voudrais indiquer à cette instruction, car je pense que c'est celle-ci qu'il faut modifier, d'aller dans un dossier
nommé "Photos" par exemple, où se trouveveraient les photos "photos/aoo.jpg" ect...
je vous joins le script d'un petit diaporama que j'ai trouvé sur le net.
je vous remerçie d'avance pour vos conseils.
Cordiament.
Relax77500
-------------------------------------------------------------------------------------------------------------------
<SCRIPT LANGUAGE="JavaScript">
<!--
var timeDelay = 2;
var Pix = new Array
("photos/a00.jpg"
,"photos/a01.jpg"
,"photos/a02.jpg"
,"photos/a03.jpg"
,"photos/a04.jpg"
,"photos/a05.jpg"
,"photos/a06.jpg"
,"photos/a07.jpg"
,"photos/a08.jpg"
,"photos/a09.jpg"
,"photos/a10.jpg"
);
var howMany = Pix.length;
timeDelay *= 1000;
var PicCurrentNum = 0;
var PicCurrent = new Image();
PicCurrent.src = Pix[PicCurrentNum];
function startPix() {
setInterval("slideshow()", timeDelay);
}
function slideshow() {
PicCurrentNum++;
if (PicCurrentNum == howMany) {
PicCurrentNum = 0;
}
PicCurrent.src = Pix[PicCurrentNum];
document["ChangingPix"].src = PicCurrent.src;
}
// End -->
</script>
<body OnLoad="startPix()">
<img name="ChangingPix" src="photos/a00.jpg">
Etant novice en javascript' j'aurais besoin d'un conseil pour modifier une fonction SRC' mais je ne sais pas si cela est possible.
Voila je voudrais indiquer à cette instruction, car je pense que c'est celle-ci qu'il faut modifier, d'aller dans un dossier
nommé "Photos" par exemple, où se trouveveraient les photos "photos/aoo.jpg" ect...
je vous joins le script d'un petit diaporama que j'ai trouvé sur le net.
je vous remerçie d'avance pour vos conseils.
Cordiament.
Relax77500
-------------------------------------------------------------------------------------------------------------------
<SCRIPT LANGUAGE="JavaScript">
<!--
var timeDelay = 2;
var Pix = new Array
("photos/a00.jpg"
,"photos/a01.jpg"
,"photos/a02.jpg"
,"photos/a03.jpg"
,"photos/a04.jpg"
,"photos/a05.jpg"
,"photos/a06.jpg"
,"photos/a07.jpg"
,"photos/a08.jpg"
,"photos/a09.jpg"
,"photos/a10.jpg"
);
var howMany = Pix.length;
timeDelay *= 1000;
var PicCurrentNum = 0;
var PicCurrent = new Image();
PicCurrent.src = Pix[PicCurrentNum];
function startPix() {
setInterval("slideshow()", timeDelay);
}
function slideshow() {
PicCurrentNum++;
if (PicCurrentNum == howMany) {
PicCurrentNum = 0;
}
PicCurrent.src = Pix[PicCurrentNum];
document["ChangingPix"].src = PicCurrent.src;
}
// End -->
</script>
<body OnLoad="startPix()">
<img name="ChangingPix" src="photos/a00.jpg">
30 réponses
Résumé de la discussion
Une personne novice en JavaScript cherche à modifier la fonction SRC d'un diaporama pour charger les images depuis des dossiers nommés, comme Photos ou A0001, plutôt que depuis un chemin fixe. Plusieurs réponses recommandent d'utiliser une variable dossier et de concaténer dynamiquement les chemins vers les images (par exemple 'affichettes diaporama/' + dossier + '/a00.jpg'), puis d'adapter le chargement et l'affichage. Concrètement, il faut créer les répertoires concernés sur le serveur, remplacer les chemins en dur par la variable et, selon les cas, retirer l'image initiale codée en dur et ajuster le script de démarrage.
-
Et ceci alors ? :D
<html> <head> <script type="text/javascript"> function contains(today, array) { for (var i = 0; i < array.length; i++) { if (array[i] === today) return true; } return false; } function getFolder() { var dossier; var today = new Date().getDate(); var first = new Array(1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31); var second = new Array(2, 5, 8, 11, 14, 17, 20, 23, 26, 29); if (contains(today, first)) dossier = "A0000"; else if (contains(today, second)) dossier = "A0001"; else dossier = "A0002"; document.getElementById("dossier").innerHTML = dossier; } </script> </head> <body onload="getFolder();"> Du 01 au 10 inclus : A0000<br/> Du 11 au 20 inclus : A0001<br/> Du 21 au 28/29/30/31 inclus : A0002<br/><br/> Aujourd'hui, nous affichons le dossier <span id="dossier"></span> </body> </html>
-
Re ... Blunderer,
Merci encore, à ce que je vois mon idée ne te déplais pas ... Super alors on y va.
Par contre, il faudrait que tu me dises si je dois inclure cette modif au script déjà en place?
Et je pense qu'il faudrait pour l'essai faire en sorte que le dossier change tous les jours, cela sur 3 jours car cela va changer tous les 10 jours, car l'essai va être long.
Enfin, avec mes maigres connaissances en javascript, je pense savoir quelles sont les lignes à modifier mais je préfère avoir ton avis avant.
Amicalement.
Alain -
Crée un nouveau fichier .html (juste pour tester et dis moi ce que tu en penses) :
<html> <head> <script type="text/javascript"> function getFolder() { var day = new Date().getDate(); if (day >= 1 && day <= 10) document.getElementById("dossier").innerHTML = "A0000"; else if (day >= 11 && day <= 20) document.getElementById("dossier").innerHTML = "A0001"; else document.getElementById("dossier").innerHTML = "A0002"; } </script> </head> <body onload="getFolder();"> Du 01 au 10 inclus : A0000<br/> Du 11 au 20 inclus : A0001<br/> Du 21 au 28/29/30/31 inclus : A0002<br/><br/> Aujourd'hui, nous affichons le dossier <span id="dossier"></span> </body> </html>
Maintenant, je suis. -
D'accord, admettons que tu veuilles changer disons tous les 1, 10 et 20 du mois (soit environ tous les 10 jours...), le mieux est de faire une condition en javascript qui regarde quel jour on est en fonction de changer...
Car si on fait autrement je crains qu'il faille stocker le nombre de jours dans un fichier à part... (Car quand on quitte la page et qu'on revient, tout se réinitialise...)
-
Bonjour Blunderer,
Me revoilou après quelques jours d'absence ... boulot oblige.
Donc, comme je t'ai dit j'ai une idée peut-être un peu bizarre mais ça peut- être utile.
Voilà mon idée et tu me diras ce que tu en penses.
Donc pour le diapo, cela fonctionne nickel et merci encore.
En partant de 3 dossiers donc A0000 - A0001 - A0002, à ton avis serait-il possible de temporiser le changement de dossier automatiquement.
Je m'explique:
Prenons un dossier qui changerait automatiquement au bout disons 1 semaine voire 15 jours ou 1 mois.
Mais la comment ferais tu ... tu calculerais par jour donc 30 jours égal 1 mois où horaire voire à la seconde donc 1 mois égal
tant de secondes.
Voila, peut-être une idée farfelue mais bien utile pour un web master.
Amicalement.
Alain -
Merci beaucoup :D
Ca fait vraiment plaisir...
Et si je peux encore t'aider, je le fais ;) Alors demande-moi :)
-
Bonjour Blunderer,
Bon voilà les résultats de ton travail - 20 sur 20.
Eh oui, cela fonctionne magistralement bien et je suis très satisfait du résultat.
Maintenant il ne me reste plus qu'a te remercier grandement.
Ah oui autre chose, j'aurais besoin de renseignements concernant une modification sur ce script mais je ne voudrais pas abuser de ton temps et en plus je ne sais si cela est faisable. Je pense que oui mais je me trompe peut être.
Et encore un grand merci.
Amicalement.
Alain -
Super !
Supprime bien la ligne 63 ;)
-
C'est bon, j'ai trouvé j'avais laissé la ligne " var dossier a A0001 au lieu de la mettre à A0000.
Alain -
Ligne 63 : supprime la ligne
Ligne 224 :<img name="ChangingPix" src="http://www.lbaf77.com/affichettes diaporama/A0001/a00.jpg">
Et voila ;)
Maintenant, je suis. -
Oui apres controle donc il lit la premiere image du dossier A0000 et ensuite il lit la deuxieme image du dossier A0001. c'est etrange ce truc.
Amicalement.
Alain -
Attends ne ferme pas le sujet car je viens de me rendre compte d'un truc bizarre.
Je contrôle bien avant mais à priori il démarrerait sur la première image du dossier A0000 ensuite il saute sur le dossier A0001.
Amicalement.
Alain -
Oui ça fait style. Bon mon ami c'est tout bon ... impec ... cable de frein ... super.
Rien à dire de plus qu'a te remercier grandement pour ton aide et il ne me reste plus qu'a modifier toutes mes pages et transférer tous les dossier.
Vraiment super et du bon boulot. Encore un grand merci.
Je te laisse fermer le sujet car je ne sais pas comment il faut faire.
Amicalement. A ++++
Alain -
Ok j'essaie ça de suite. Ah oui j'ai mis la pas en ligne regarde ce que ca donne m.d.r.
Je te tiens au courant.
Alain -
Je vois l'erreur :
ligne 64 : coupe la ligne et colle la entre <div align="center"> et </div> (lignes 223-224).
Essaye !
Voili :)
-
Bonjour Blunderer,
On a gagné enfin tu as gagné .... c'est bon cela fonctionne avec A0000 et A0001.
Ça ne fonctionnait pas car j'ai du me planter en insérant le code.
Le seul soucis est que l'image se retrouve à l'extérieur du cadre et non dedans comme sur les autres pages du site. Il ne me reste plus que ça à faire comme ça ce sera super.
Voila on approche du but et je ne sais pas comment te remercier pour ton aide aussi précieuse.
Amicalement.
Alain -
Y a aucune raison que ca ne marche pas sur ton pc.
Quand tu copies colles mon dernier message, ca marche ou pas ?
Si oui, tu as juste à l'insérer dans ta page internet normale.
-
Me revoila,
Donc pour moi ça fonctionne uniquement en local et sur le dossier A0000.
Je vais faire l'essai sur l'ordinateur de mon fils car j'ai un doute sur mon navigateur.
Dis moi, si de ton coté cela fonctionne sur le net avec le dossier A0000 et A0001.
Sinon, je te tiens au courant pour la suite.
Bonne soirée et bon appétit.
Amicalement.
Alain -
Pour moi ca marche avec A0001 !
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans nom</title> <div align="center"><u>ESSAI DIAPORAMA</u></div> <script type="text/javascript"> <!-- var timeDelay = 2; var dossier = "A0001"; var Pix = new Array ("http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a00.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a01.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a02.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a03.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a04.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a05.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a06.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a07.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a08.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a09.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a10.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a11.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a12.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a13.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a14.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a15.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a16.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a17.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a18.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a19.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a20.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a21.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a22.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a23.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a24.jpg" ,"http://www.lbaf77.com/affichettes diaporama/" + dossier + "/a25.jpg" ); var howMany = Pix.length; timeDelay *= 1000; var PicCurrentNum = 0; var PicCurrent = new Image(); PicCurrent.src = Pix[PicCurrentNum]; function startPix() { setInterval("slideshow()", timeDelay); } function slideshow() { PicCurrentNum++; if (PicCurrentNum == howMany) { PicCurrentNum = 0; } PicCurrent.src = Pix[PicCurrentNum]; document["ChangingPix"].src = PicCurrent.src; } // End --> </script> </head> <body onload="startPix();"> <img name="ChangingPix" src="http://www.lbaf77.com/affichettes diaporama/A0001/a25.jpg"> </body> </html>
Tiens moi au courant ;)
-
Re bonjour Blunderer,
Donc après essai cela semble concluant pour le dossier A0000 mais si je veux basculer sur le dossier A0001 cela ne fonctionne pas et je reste bloqué sur le dossier A0000 même en modifiant la variable Dossier " A0000 " en " A0001 " et la ligne " <img name="ChangingPix" src="affichettes diaporama/A0000/a00.jpg"> ".
J'ai bien mes deux dossiers " A0000 " et " A0001 " sur le site mais rien n'y fait.
Si cela ne te dérange pas, fais l'essai pour changer de dossier pour voir si cela fonctionne chez toi.
Encore merci.
Amicalement.
Alain
- 1
- 2
Suivant