IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Slideshow startPix KO


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Slideshow startPix KO
    Bonjour

    J’ai repris les fonctions startPix() et slideshow() dont il a déjà été question ici.

    Je fournis en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var Pix = new Array  
    (lignetot);
    Où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lignetot: "W:\isipc\martinot\photoC\martinot 3.JPG","W:\isipc\martinot\photoC\martinot 2.JPG","W:\isipc\martinot\photoC\martinot 1.jpg"
    Je démarre avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img name="ChangingPix" src="W:\isipc\martinot\photoC\martinot 1.jpg" id="arriere">
    Résultat: la première image s’affiche et c’est tout, ça s’arrête là.

    Merci par avance de vos conseils.

    Francois

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par francoisch Voir le message
    J’ai repris les fonctions startPix() et slideshow() dont il a déjà été question ici.
    un lien aiderait ceux qui n'avait pas participé aux échanges précédents

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    J'ai débuté ce sujet dans mon message initial mais je crois que ces deux fonctions sont déjà connues.

    A défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    var timeDelay = 2; // change delay time in seconds
    //					document.write("timeDelay: "+timeDelay+"<br>");
    var Pix = new Array  
    (lignetot);
    var howMany = Pix.length;
    //					document.write("howMany: "+howMany+"<br>");
    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;
    	}
    En espérant que ça aide.

    Francois

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut

    document["ChangingPix"].src = PicCurrent.src;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.images["ChangingPix"].src = PicCurrent.src;

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour et merci de ta réponse.

    Le résultat est le même: la première image, celle qui est nommée dans
    <img name="ChangingPix" src="W:\isipc\martinot\photoC\martinot 1.jpg">, s'affiche mais pas les autres (image blanche avec un petit x en haut à gauche).

    J'ai déjà utilisé ce carrousel mais c'était avec des images enregistrées sur un site Web; ici, ça devrait être plus facile, les images sont enregistrées sur mon PC.

    Voici le code, situé dans Head, complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    var chemin = "<?=$_SESSION['lettre_ddS']?>:\\<?=$_SESSION['racine_dpS']?>\\<?=$_SESSION['repertoireS']?>\\photoC\\";
    var lignetot = Aller(chemin);
    					document.write("lignetot: "+lignetot+"<br>");
     
    // var timeDelay = <?php echo $delay; ?>; // change delay time in seconds
    var timeDelay = 2; // change delay time in seconds
    //					document.write("timeDelay: "+timeDelay+"<br>");
    var Pix = new Array  
    (lignetot);
    var howMany = Pix.length;
    //					document.write("howMany: "+howMany+"<br>");
    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.images["ChangingPix"].src = PicCurrent.src;
    	}
    où on voit, au début, le document.writequi affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lignetot: "W:\isipc\martinot\photoC\messagerie2.gif","W:\isipc\martinot\photoC\martinot 3.JPG","W:\isipc\martinot\photoC\martinot 1.jpg"
    ce qui est bien la liste des photos de test présentes dans le dossier de mon PC.

    Dans mon carrousel qui fonctionne avec des images enregistrées sur un site Web, leurs adresses sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ../esp1/martinot/journalierP/repfam01.jpg
    Est ce que j'ai raté qqechose de ce coté là?

    Merci par avance de votre aide.

    Francois

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Apparemment, seule l'adresse de la première image ne contient pas d'espace

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu ne dois pas échapper les anti-slash?
    Ou mettre le protocole file si le chemin est absolue?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Merci de vos réponses.

    Pour les espaces:
    - un des fichiers n'a pas d'espace dans son nom, les autres en ont un
    - le premier fichier qui s'affiche a un espace, ce qui ne semble donc pas gêner

    Echapper:
    en entrée de la fonction Aller() qui établit la liste des fichiers, je fournis le chemin avec les \ échappés, j'en met deux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ar chemin = "<?=$_SESSION['lettre_ddS']?>:\\<?=$_SESSION['racine_dpS']?>\\<?=$_SESSION['repertoireS']?>\\photoC\\";
    A la sortie j'ai un string où sont assemblés les noms des fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lignetot: "W:\isipc\martinot\photoC\messagerie2.gif","W:\isipc\martinot\photoC\martinot 3.JPG","W:\isipc\martinot\photoC\martinot 1.jpg"
    que j'imprime pour vérification avec un document.write.

    Francois

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    Dans mes recherches, je retrouve partout le même exemple dans lequel les photos sont dans le même dossier Serveur que la page où se trouve le code JS; parfois, les images sont dans un dossier voisin.

    Par contre, je n'ai jamais trouvé d'exemple où les images soient sur le Client.

    Est ce l'explication du non fonctionnement du Slideshow?

    Pourtant, la première image s'affiche bien; pourquoi pas les autres?

    Merci de votre aide.

    Francois

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par francoisch Voir le message
    Pourtant, la première image s'affiche bien; pourquoi pas les autres?
    Citation Envoyé par Bovino Voir le message
    Apparemment, seule l'adresse de la première image ne contient pas d'espace
    De plus, la première est un .gif alors que les autres sont .jpg ou .JPG

    Tu as aussi vérifié que c'était bon ?
    (y compris une fois généré ?)

    A+

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Merci de vos réponses.

    J'ai conservé seulement deux photos Jpg et j'ai enlevé les espaces.

    Voici le string d'adresses issu de mon document.write:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lignetot: "W:\isipc\martinot\photoC\martinot3.JPG","W:\isipc\martinot\photoC\martinot1.jpg"
    Résultat: la première s'affiche, pas la suivante.

    J'ai aussi spécifié le nom de l'autre photo ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img name="ChangingPix" src="W:\isipc\martinot\photoC\martinot3.jpg" id="arriere">
    pour le cas où l'ordre de nommage aurait eu un impact; rien.

    Il va falloir encore chercher.

    Merci de votre aide.

    Francois

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Alors pour faire simple, peux-tu, juste pour test, ajouter 3 <img> dans ta page, qui pointent chacune sur une des images (src "en dur").

    Si elles s'affichent, tu seras au moins sûr que le problème vient de la génération du path, ou en tous cas de ton script.
    Sinon, il s'agit d'un problème de fichier ...

    A+

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    J'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <img name="test1" src="W:\isipc\martinot\photoC\martinot1.jpg">
    <img name="test2" src="W:\isipc\martinot\photoC\martinot3.jpg">
    et j'ai bien eu affichage des deux images, l'une sur l'autre dans la fenêtre.

    Le chemin d'accès aux photos est donc valide.

    Il va falloir chercher ailleurs.

    Francois

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par francoisch Voir le message
    J'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <img name="test1" src="W:\isipc\martinot\photoC\martinot1.jpg">
    <img name="test2" src="W:\isipc\martinot\photoC\martinot3.jpg">
    et j'ai bien eu affichage des deux images, l'une sur l'autre dans la fenêtre.

    Le chemin d'accès aux photos est donc valide.

    Il va falloir chercher ailleurs.
    Non, tu peux arrêter de chercher

    Par contre, tu peux passer un peu plus de temps à te relire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    W:\isipc\martinot\photoC\martinot3.JPG
    A+

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var lignetot = Aller(chemin);
    					document.write("lignetot: "+lignetot+"<br>");
     
    // var timeDelay = <?php echo $delay; ?>; // change delay time in seconds
    var timeDelay = 2; // change delay time in seconds
    //					document.write("timeDelay: "+timeDelay+"<br>");
    var Pix = new Array  
    (lignetot);
    var howMany = Pix.length;
    Tu ne peux pas construire un tableau comme ça !!!
    lignetot est une seule chaine donc ton tableau ne contient qu'un seul élément, c'est pour ça qu'une seule image s'affiche !

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    Le tableau:
    Y a t il une différence entre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var Pix = new Array  
    (lignetot);
    avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lignetot = "W:\isipc\martinot\photoC\martinot3.JPG","W:\isipc\martinot\photoC\martinot2.JPG"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var Pix = new Array  
    (
    "W:\isipc\martinot\photoC\martinot3.JPG",
    "W:\isipc\martinot\photoC\martinot2.JPG"
    );
    Pour la relecture:
    si le sujet est JPG en majuscules qui poserait problème, pour être sûr, j'avais modifié le nom du fichier en mettant jpg en minuscules, sans résultat.

    Merci de votre aide.

    Francois

  17. #17
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, il y a une grande différence car ton lignetot ne vaut pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lignetot = "W:\isipc\martinot\photoC\martinot3.JPG","W:\isipc\martinot\photoC\martinot2.JPG"
    mais en réalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lignetot = '"W:\isipc\martinot\photoC\martinot3.JPG","W:\isipc\martinot\photoC\martinot2.JPG"'
    Il s'agit bien d'une chaine et non pas un ensemble de chaines ! D'ailleurs, sinon tu aurais une erreur

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Merci de ta réponse tout d'abord.

    J'ai essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'W:\isipc\martinot\photoC\martinot3.jpg','W:\isipc\martinot\photoC\martinot1.jpg'
    en remplaçant les doubles quotes par des simples quotes, sans résultat.

    Veux tu dire qu'il faut que je code comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var Pix = new Array  
    (
    "W:\isipc\martinot\photoC\martinot3.JPG",
    "W:\isipc\martinot\photoC\martinot2.JPG"
    );
    Ce sont les retours à la ligne qui changent qqechose?

    Autre solution: dans lignetot, si j'enlève à la construction le premier double quote et le dernier double quote, ça pourrait aller?

    Francois

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non, tu as mal compris.
    Dans ton code à l'origine, lignetot a pour valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'W:\isipc\martinot\photoC\martinot3.jpg','W:\isipc\martinot\photoC\martinot1.jpg'
    Ce qui fait que lorsque tu l'affiches, cela donne bien :
    W:\isipc\martinot\photoC\martinot3.jpg','W:\isipc\martinot\photoC\martinot1.jpg
    Mais lorsque tu l'affecte dans ton tableau, c'est la première valeur qui est enregistrée et pas un ensemble de valeurs.
    Ton tableau ne contient donc que 1 élément.
    Il faut donc effectivement faire différemment pour obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var Pix = new Array  
    (
    "W:\isipc\martinot\photoC\martinot3.JPG",
    "W:\isipc\martinot\photoC\martinot2.JPG"
    );
    EDIT :
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Pix = lignetot.split(',');

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    Je suis allé mettre un document.write dans slideshow():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write("PicCurrent.src: "+PicCurrent.src+"<br>");
    qui donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PicCurrent.src: http://www.fctest1.fr/photo/'W:/isipc/martinot/photoC/martinot1.jpg
    Ca semble bien expliquer pourquoi le slideshow ne trouve pas les fichiers du tableau.

    Question: comment exprimer le chemin sur le PC pour éviter qu'il soit pris pour une adresse Web?

    Francois

Discussions similaires

  1. Défilement de miniature (slideshow)
    Par zmania69 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/06/2006, 11h40
  2. slideshow ne fonctionne pas sous mozilla
    Par brotelle dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/05/2006, 12h18
  3. Réaliser un 'slideshow' avec OpenGL
    Par jcs2 dans le forum OpenGL
    Réponses: 13
    Dernier message: 27/01/2006, 16h07
  4. slideshow image et lien en xml
    Par soka dans le forum Flash
    Réponses: 2
    Dernier message: 23/12/2005, 11h07
  5. Slideshow d'images sur linux
    Par mhtrinh dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 21/10/2005, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo