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 :

afficher les images en boucles


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut afficher les images en boucles
    Bonjour,

    J'aimerais afficher les images d'un repertoire en boucle au même endroit, j'afficche une seule image à la fois.
    Apres 2 secondes j'affiche l'images suivante , jusqu'à la dernière et je reprend au debut.

    voici le code que j'utilise il marche mais, pour afficher les images les une à la suite des autres je dois recharger la page, or je que ça se deroule tout seul:
    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
    60
    61
    <?php
    function writeImage($pdir,$pname)
      {
        $h_vign="160"; 
            $l_vign="180";
            
            echo '<img src="'.$pdir.$pname.'" alt="Image aleatoire"';
        echo "width='$l_vign' height='$h_vign'>"; 
            //echo 'document.images[0].src='.$pdir.$pname; //.'alt="Image aleatoire"';
      }
    // On stock le répertoire dans une variable
    // on l'utilisera de nouveau par la suite dans le code
    $dir = "gallerie_photos/";
     
    // On ouvre le répertoire pour se préparer
    // à le lire
    $opened_dir = opendir($dir);
     
    // On vérifie que l'ouverture du répertoire à bien
    // fonctionnée, sinon on arrête là....
    if(!$opened_dir) die('Erreur');
     
    // On créé un tableau destinné à contenir la
    // liste des images disponibles
    $image_list = array();
     
    // On créé une variable $i pour parcourir le tableau
    // ainsi créé
    $i = 0;
     
    // On boucle tant que l'on peut y lire queque chose
    while ( ($file = readdir($opened_dir)) !== FALSE )
    {
          // On contrôle que nous sommes bien en présence d'un
          // fichier et non pas d'un répertoire
          if( is_file($dir.$file) )
          {
                // On stock l'image dans le tableau d'image
                $image_list[$i] = $file;
                
                // On incrémente la variable de parcourt de 1
                // pour ne pas écraser l'enregistrement avec
                // le suivant
                $i++;
          }
    }
     
    // Et on finit par fermer le répertoire ouvert
    closedir($opened_dir);
     
    // On réutilise $i pour stocker le nombre aléatoire
    // on lui donne donc une valeur grace à la fonction mt_rand() de
    // génération de nombres aléatoires
      $i=0;
      while($i<18) {
       $i = mt_rand(0,count($image_list)-1);
       //sleep(5);
        writeImage($dir,$image_list[$i]);
      }
     
    ?>
    Merci d'avance,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    PHP ne peut pas interagir avec le navigateur.
    Il faut que tu te tournes vers du javascript.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci sabotage,

    Mais les images que je vais afficher sont sur le server de mon
    herbergeur. As-tu une idée de comment faire ce passage du server vers
    le navigateur sans je n'ai à recharger la page à chaque fois pour avoir l'image suivante.

    Merci d'avance,

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par faamugol Voir le message
    Merci sabotage,

    Mais les images que je vais afficher sont sur le server de mon
    herbergeur. As-tu une idée de comment faire ce passage du server vers
    le navigateur sans je n'ai à recharger la page à chaque fois pour avoir l'image suivante.

    Merci d'avance,
    comme dit sabotage "en javascript" c' est un classique

    HOUPS........... je réédites
    pour amorcer ton javascript tu peut écrire quelque part:
    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
     
    <?PHP 
    //============lire un repertoire===============================
    $data = glob('mesimages/*.jpg'); 
    echo("<SCRIPT LANGUAGE='JavaScript'><!--imgx=new Array();
    ");
    $a=0;
    foreach( $data as $filename)
      {
        if ( is_file($filename) )
         {
           echo ("imgx[".$a."]='".$filename."';");
           $a++;  
         }
     }
    echo ("//--></SCRIPT>");
    ?>
    Voila toutes tes images sont prétes dans un javascript
    Dernière modification par FoxLeRenard ; 22/02/2009 à 12h40.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci pour la reponse,

    j'ai bien essayé ça marche mais il m'affiche toutes les images les unes à la suites des autres. Moi, je voudrais afficher une seule image à la fois au même endroit. Une fois arrivé à la fin je reprends au debut. Un effet de defilement.

    Cette image est dans un include(gauche.php) depuis le fichier index.php, donc
    ne contient ni la balise html ni de body.

    Merci d'avance pour vos idées,

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    bon quelques petites pistes, voici comment je ferais (mais c'est pcq je m'y connais mieux en PHP que JS)

    1] PHP : je fais une boucle pour récup toutes les images d'un dossier
    2] PHP : je place toutes ces images dans un array
    3] j'ajoute un code +/- comme ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    function slideShow(indice)
       var myArray = <?php $mesPhotosPHP; ?>;
       var i = indice;
       document.write(myArray[i]);
       setTimeout(slideShow(i++), 1000);
    }
    </script>

    j'suis pas hyper doué mais ça doit s'en rapprocher (setTimeout() prend en premiere variable une fonction qui va etre appellée, et en 2ieme un temps de pause en millisecondes)

Discussions similaires

  1. [PHP 5.3] Petite boucle pour afficher les images
    Par thebarbarius dans le forum Langage
    Réponses: 7
    Dernier message: 09/11/2010, 00h06
  2. Afficher les images d'un répertoire
    Par cyrill.gremaud dans le forum ASP
    Réponses: 17
    Dernier message: 09/02/2006, 12h53
  3. Afficher les images d'un répertoire
    Par jim1 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 08h00
  4. afficher les images background
    Par DELYMED2 dans le forum ASP
    Réponses: 2
    Dernier message: 17/10/2005, 09h09
  5. Afficher les images en C++ ou C
    Par sheryuledragon dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 17/03/2005, 11h22

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