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 :

faire défiler image dans bandeau, random, interval, sans effet ,erreur script javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut faire défiler image dans bandeau, random, interval, sans effet ,erreur script javascript
    Bonjour,

    Pouvez vous m'aider a corriger mon code javascript?

    Je fais un site internet et je voulais avoir un bandeau de photo qui change de facon automatique et aléatoire.
    en clair, un espace ou les photos d'un repertoire selectionné défilerer aléatoirement ET SANS EFFET toutes les X secondes.

    voici mon code javascript :
    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
     
    function defiler(){
    	var m = compteur();
    	var imagesPath = '../image/bandeau_defilant/';
    	var imagesName = 'img';
    	var imagesExt = 'jpg';
    	var imagesNb = m;
    	var randomNumber = Math.floor(Math.random() * imagesNb +1);
    	document.writeln('<img class="bandeau" src="' + imagesPath + imagesName + randomNumber + '.' + imagesExt + '"\/>');
    }
     
    function compteur(){
    	var fso = new ActiveXObject("Scripting.FileSystemObject");
    	var n = 0;
    	var f = fso.GetFolder('../image/bandeau_defilant/');
    	var ff = new Enumerator(f.files);
    	for(; !ff.atEnd(); ff.moveNext())
    	n++;
     
    	return n;
     
    }
     
    function timer(){
    		defiler();
    		var interval = setInterval("defiler()",3000);
    	}
    A savoir : si je ne lace que defiler, j'ai bien une photo choisi aléatoirement qui s'affiche et change a chaque actualisation de la page.
    si je rajoute le compteur pour me mettre de pouvoir rajouter et enlever des photos du repertoire librement, rien ne s'affiche du tout !
    et enfin si je rajoute la fonction timer, une première photo s'affiche puis une seconde mais dans une page blanche différente de la page courante...

    merci de votre aide

  2. #2
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    Bonsoir,

    tout d'abords, permettez-moi une petite remarque : l'utilisation de la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    limite votre code à l'utilisation de Internet Explorer, ce qui est pénalisant pour les autres utilisateurs.

    A mon avis, l'utilisation du PHP avec du javascript me semble une meilleure solution : le PHP permet trés facilement de parcourir un répertoire et le javascript permettrait de gérer l'affichage des photos.
    Si question répondue, clique sur

  3. #3
    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 : 53
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par blade159
    A mon avis, l'utilisation du PHP avec du javascript me semble une meilleure solution : le PHP permet trés facilement de parcourir un répertoire et le javascript permettrait de gérer l'affichage des photos.
    +1

    Ceci dit, as-tu bien compris ce que tu essayes de faire ???
    En particulier, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    à quel fileSystem crois-tu accéder ?

    Parce que là, ce que tu fais, c'est essayer d'afficher des images depuis le poste de l'utilisateur
    Ce qui n'est pas terrible pour un site Web. Au-delà bien sûr que ton site va immédiatement être considéré comme dangereux par les moteurs de recherche et que tu crées en fait une passoire niveau sécurité !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    okay .... je comprends...
    je le ferais donc en php ... javais envie qu'il fonctionne en javascript ... ça me contrarie un peu !!! c'était surtout pour comprendre l'erreur ...

    bon et pour ce qui est de l'intervalle ??? comment je dois m'y prendre? vous avez une idée ...?

    je comprends que ce que je lui demande c'est d'insérer une ligne de code dans l'html à intervalle régulier ... je ne comprends pas comment cette ligne peu être prise en compte... parce qu'elle est prise en compte vu que au bout d'un intervalle une des photos du rep apparait seule sur une page blanche...

  5. #5
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    Bonsoir, il ne faut pas désespérer : le PHP vous permettra de récupérer les images sur le serveur mais c'est le Javascript qui va gérer l'affichage. Voici un exemple 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <!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 titre</title>
    <?php
     
    $mydir = '../image/bandeau_defilant/';
    $filelist=null; 
    if ($dir = @opendir($mydir)) 
    {
        //Parcour du dossier
        while (($file = readdir($dir)) !== false) 
        {
            if($file != ".." && $file != ".")
            {
                //Test de l'extension
                if(strtolower(substr($file,-4))==".jpg")
                 {
                     $filelist[] = $file;
                 }
               }
        } 
        closedir($dir);
        sort($filelist,SORT_NUMERIC);
    }
     
     
        $tableau = "(";
        if(sizeof($filelist) !=0)
        {
            for ($i=0;$i<sizeof($filelist);$i++)
            {
                $tableau .=  "'".$filelist[$i]."',";
            }
        }
        $tableau = substr($tableau, 0, -1);
        $tableau .=  ")";
    ?>
    <script>
        var chemin = "<?php echo $mydir; ?>";
        var tableau = new Array<?php echo $tableau; ?>;
        function defiler()
        {
            var randomNumber = Math.floor(Math.random() * tableau.length +1);
            document.getElementById('bandeau').innerHTML = "<img src=" + chemin + tableau[randomNumber];
        }
    </script>
     
     
     
    </head>
    <body onload="setInterval('defiler()',1000)">
    <div id='bandeau'>
     
    </div>
    </body>
    </html>
    C'est pas très propre comme code mais j'ai fait ça vite...
    Si question répondue, clique sur

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    petite modifs sur la fonction défiler :

    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
        function defiler()
        {
            var randomNumber = Math.floor(Math.random() * tableau.length +1);
            document.getElementById('bandeau').innerHTML = "<img src=" + chemin + tableau[randomNumber]+ "></img>";
        }
    </script>
     
     
     
    </head>
    <body onload="setInterval('defiler()',1000)">
    <div id='bandeau'>
     
    </div>
    </body>
    </html>
    merci beaucoup cela marche parfaitement !!!

    je suis très contente que cela fonctionne enfin !

    merci !

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut merci
    Bonjour je vous remercie pour ce script qui est vraiment très utile alors je voudrais savoir si quelqu'un pouvais m'aider a faire un effet fondu lors de l'affichage des images. Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Prototype] Faire défiler image et texte
    Par Paulux1 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 12/12/2010, 19h27
  2. Encadrer une image dans le code latex sans marge
    Par Ladgalen dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 05/04/2009, 17h48
  3. Réponses: 6
    Dernier message: 14/11/2008, 19h48
  4. défiler image dans un cadre
    Par reg64 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/04/2007, 11h36
  5. faire défiler image dans picture box
    Par cd090580 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/02/2007, 16h00

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