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 :

Carrousel à modifier


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut Carrousel à modifier
    Bonjour,

    J'ai un Carrousel que j'aimerai amélioré.

    J'ai une bonne centaine de photos à insérer et je voulais voir s'il était possible de faire une boucle dans mon code.

    Une partie de mon code:!
    Code HTML : 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
    	<div class="slideshow">  
        	<ul>
        		<li><img src="Photos/Pascale%20Boyer.jpg"         alt="Pascale Boyer"      width="120" height="160" /><Div Class="titre" texte align="center">Pascale Boye</Div></li>
        		<li><img src="Photos/Petit%20Maud.jpg"            alt="Petit Maud"         width="120" height="160" /><Div Class="titre" texte align="center">Petit Maud</Div></li>
        		<li><img src="Photos/Sophie%20Mette.jpg"          alt="Sophie Mette"       width="120" height="160" /><Div Class="titre" texte align="center">Sophie Mette</Div></li>
        		<li><img src="Photos/Val%C3%A9rie%20Boyer.jpg"    alt="Valérie Boyer"      width="120" height="160" /><Div Class="titre" texte align="center">Valérie Boyer</Div></li>
                <li><img src="Photos/Sophie%20Panonacle.jpg"      alt="Sophie Panonacle"   width="120" height="160" /><Div Class="titre" texte align="center">Sophie Panonacle</Div></li>
        </ul> 
     
        </div>  
     
     
    	<script type="text/javascript" src="js/carousel_jquery.min.js"></script>
     
        <script type="text/javascript">
                    $(function(){
                            setInterval(function(){
                                    $(".slideshow ul").animate({marginLeft:-350},800,function(){
                                            $(this).css({marginLeft:0}).find("li:last").after($(this).find("li:first"));
                                    })
                            }, 3500);
                    });
            </script>

    Je vous remercie de votre aide

    Max

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    oui, c'est possible.

    • soit en PHP, à partir d'un array PHP ou de données récupérées d'une BDD
    • soit en JS, à partir d'un objet JS, contenant les données.

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour jreaux62

    Je te remercie mais en JS comment?

    Max

  4. #4
    Invité
    Invité(e)
    Par défaut
    A toi de nous dire d'où proviennent les données...

    • Bdd ?
    • "en dur" dans le script ?
    • d'un fichier (json) ?

    Ensuite, il suffit de construire dynamiquement les <li>, avec une boucle for.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Toutes les images viennent d'un fichier dans le même dossier

    Max

  6. #6
    Invité
    Invité(e)
    Par défaut
    Montre le contenu du fichier, alors !

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Voila une partie de mon fichier

    Max
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="slideshow"></div>
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .slideshow li img { 
      display:block;
      width:120px;
      height:160px;
    }
    .slideshow li div.titre { 
      text-align:center;
    }
    Code JavaScript : 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
    'use strict';
    const images = [
      { 'src':"Photos/Pascale%20Boyer.jpg" ,'alt':"Pascale Boyer" ,'titre':'Pascale Boye'},
      { 'src':"Photos/Petit%20Maud.jpg" ,'alt':"Petit Maud" ,'titre':'Petit Maud'},
      { 'src':"Photos/Sophie%20Mette.jpg" ,'alt':"Sophie Mette" ,'titre':'Sophie Mette'},
      { 'src':"Photos/Val%C3%A9rie%20Boyer.jpg" ,'alt':"Valérie Boyer" ,'titre':'Valérie Boyer'},
      { 'src':"Photos/Sophie%20Panonacle.jpg" ,'alt':"Sophie Panonacle" ,'titre':'Sophie Panonacle'},
    ];
    const slideshow = document.querySelector('.slideshow');
    const slideshow_ul = document.createElement('ul');
    slideshow.appendChild(slideshow_ul);
    images.forEach( function(image){
      let li = document.createElement('li');
     
      let img = document.createElement('img');
      img.src = image.src;
      img.alt = image.alt;
      li.appendChild(img);
     
      let div = document.createElement('div');
      div.classList.add('titre');
      div.textContent = image.titre;
      li.appendChild(div);
     
      slideshow_ul.appendChild(li);
    });

    Maintenant, s'il s'agit d'aller chercher automatiquement les images dans le dossier "Photos", c'est une autre affaire...
    Mais comme tu ne sais pas répondre en faisant plus d'une phrase.................
    Dernière modification par Invité ; 11/08/2019 à 09h53.

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour jreaux62

    Je te remercie.

    Maintenant, s'il s'agit d'aller chercher automatiquement les images dans le dossier "Photos", c'est une autre affaire...
    Oui c'est le problème mais comme je ne sais pas répondre au question je fait se que je peut.

    Merci

    Max

  10. #10
    Invité
    Invité(e)
    Par défaut
    Tu ne fais pas beaucoup d'efforts pour répondre, non plus...
    Tu es aussi très avare de ...

    "parcourir dossier images"
    Ça peut se faire en PHP.
    Et ça permet de remplir automatiquement l'objet JS "images" (à supposer qu'en "titre" et "alt", on reprenne le nom de l'image).

    Dernière modification par Invité ; 11/08/2019 à 10h42.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Comme je n'ai rien d'autre à faire...

    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
    <div class="slideshow"></div>
    <?php 
    //nom du répertoire contenant les images ? afficher
    $nom_repertoire = './Photos';
    //on ouvre le répertoire
    $pointeur = opendir($nom_repertoire);
     
    //on stocke les noms de fichiers images dans un tableau
    $tab_image = [];
    while ($fichier = readdir($pointeur))
    {
            $extension_file         = strtolower( pathinfo($nom_repertoire.'/'.$fichier, PATHINFO_EXTENSION) );
            $extensions_array       = array('gif','jpg','jpeg','png');
            if ( in_array($extension_file, $extensions_array) )
            {
                    $tab_image[] = utf8_encode($fichier);
            }
    }
    //on ferme le répertoire
    closedir($pointeur);
    //on trie le tableau par ordre alphabétique -> FACULTATIF !
    array_multisort($tab_image, SORT_ASC);
    // OU : mélange aléatoire -> FACULTATIF !
    // shuffle($tab_image);
    ?>
    <script>
    'use strict';
    $(function(){
    	const images = [
    <?php   foreach($tab_image as $image){ 
            $image_file = htmlspecialchars($nom_repertoire.'/'.$image);
            $image_name = htmlspecialchars(pathinfo($image_file, PATHINFO_FILENAME));
    ?>
      { 'src':"<?php echo $image_file; ?>" ,'alt':"<?php echo $image_name; ?>" ,'titre':'<?php echo $image_name; ?>'},
    <?php   } ?>
    ];
    	const slideshow = document.querySelector('.slideshow');
    	const slideshow_ul = document.createElement('ul');
    	slideshow.appendChild(slideshow_ul);
    	images.forEach( function(image){
    	  let li = document.createElement('li');
     
    	  let img = document.createElement('img');
    	  img.src = image.src;
    	  img.alt = image.alt;
    	  li.appendChild(img);
     
    	  let div = document.createElement('div');
    	  div.classList.add('titre');
    	  div.textContent = image.titre;
    	  li.appendChild(div);
     
    	  slideshow_ul.appendChild(li);
    	});
    	setInterval(function(){
    	$(".slideshow ul").animate({marginLeft:-350},800,function(){
    	  $(this).css({marginLeft:0}).find("li:last").after($(this).find("li:first"));
    	})
    	}, 3500);
    });
    </script>

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Je te remercie mais j'ai plus rien a l'écran et comme je ne sais pas travailler avec PHP?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Tant pis ?

    Il faut un langage "coté serveur" pour parcourir un dossier.
    Comme PHP.

    JavaScript est un langage "coté client".

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  2. [VB6] Zone de liste modifiable basée sur un champ
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/11/2002, 13h41
  3. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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