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 :

Switch par for dans une diaporama d'image


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Points : 42
    Points
    42
    Par défaut Switch par for dans une diaporama d'image
    Bonjour à tous s'il vous plait je voudrais créer une diaporama d'image en javascript avec suivant et précédent comme boutons

    j'ai ce code qui passe sans problème
    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
     
     case '2':
            {   
    	     document.getElementById('1').style.display="none";
    		  document.getElementById('2').style.display="block";
    		  document.getElementById('3').style.display="none";
    		  document.getElementById('4').style.display="none";
    		  document.getElementById('5').style.display="none";
    		  document.getElementById('6').style.display="none";
    		  document.getElementById('7').style.display="none";
    		  document.getElementById('8').style.display="none";
    		  document.getElementById('9').style.display="none";
    		  document.getElementById('10').style.display="none";
    		  i='3';
    	    }
    	  break;
    quand je remplace par celui il ne passe pas
    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
     
    case '2':
        {  
     
    	     document.getElementById('2').style.display="block";
    	    for (j=0;j<tab.length;j++)
    		   {
    			     if(tab[j]!=i)
    		         {
    	              document.getElementById(tab[j]).style.display="none";
    		         }
    				 if (j==9)
    				  i=1;
    				else if(tab[j]==i)
     
    	              i=tab[j+1]
     
    		   }
    	  }
    	break;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "1","2","3","4","5","6","7","8","9","10"
    sont les id des images stockés dans


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var tab = Array ("1","2","3","4","5","6","7","8","9","10");
    var i='1';
    var j;

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Problème d'indice

    Quand tu fais tab[1], tu t'attends à trouver "1", mais en réalité tu trouves "2" car en JavaScript, les tableaux commencent à 0.

    D'autre part, un switch/case est assez maladroit : tu es obligé de rajouter ou retirer un case à chaque fois que tu rajoutes ou que tu retires une image dans ton diaporama ! On peut avoir une approche plus atucieuse :
    Code JS : 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
    var nbImages = 10;
     
    function imgSuivante( i ) {
       document.getElementById('' + i).style.display = 'none';
       var suivante = i + 1;
       if (suivante > nbImages) {
          suivante = 1;
       }
       document.getElementById('' + suivante).style.display = 'block';
    }
     
    function imgPrecedente( i ) {
       document.getElementById('' + i).style.display = 'none';
       var precedente = i - 1;
       if (precedente < 0) {
          precedente = nbImages;
       }
       document.getElementById('' + precedente).style.display = 'block';
    }
     
    var imgActuelle = 1; // initialisation
     
    // quand on clique sur « suivant »
    // …
    actuelle = imgSuivante(actuelle);
     
    // quand on clique sur « précédent »
    // …
    actuelle = imgPrecedente(actuelle);

    Enfin, note que selon les normes W3C du HTML et du XML, les id ne peuvent pas commencer par un chiffre. Certains navigateurs pourraient se comporter bizarrement si tu ne respectes pas cette norme, et provoquer des erreurs difficiles à deviner. Il vaut mieux rajouter un préfixe, par exemple <img id="img1" … />, et modifier les appels à getElementById pour que ça colle.

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Points : 42
    Points
    42
    Par défaut
    Merci

    actuelle sert à quoi car c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var imgActuelle = 1; // initialisation
    qui a été initialisée

    et je passe quoi à la fonction que je recupère comment?

    mon code HTML

    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
     
    <!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>Visionneuse d'images</title>
    <script language="javascript" src="visioneuse.js"></script>
    <link rel="stylesheet" href="visionneuse.css" media="screen" />
    </head>
     
    <body>
    <h2 id="titre"> VISIONNEUSE D'IMAGES</h2>
    <!--bouttons-->
     <div id="boutton">
       <input type="button" value="Preccédent" id="prec" onclick="imgSuivante()"/>
        <input type="button" value="Suivant" id="suiv" onclick="imgSuivante()"/>
            <input type="button" value="Lect / Auto" id="lect" onclick="boucle()"/>
     </div>
     <!--Images-->
     <div id="image">
       <img src="image/dune.jpg" title="Dune" alt="Dune" id="1" width="400" height="350" style="display:block; text-align:center"  />
       <img src="image/eloliene.jpg" title="Eolienne" alt="Eolienne" id="2" width="400" height="350" style="display:none" />
        <img src="image/fleur.jpg" title="Fleur" alt="Fleur" id="3" width="400" height="350" style="display:none; text-align:center"  />
       <img src="image/neige.jpg" title="Neige" alt="Neige" id="4" width="400" height="350" style="display:none" />
       <img src="image/neigee.jpg" title="Loup" alt="loup" id="5" width="400" height="350" style="display:none; text-align:center"  />
       <img src="image/palmiers.jpg" title="Cocotiers" alt="cocotier" id="6" width="400" height="350" style="display:none" />
        <img src="image/papillon.jpg" title="Papillon" alt="Papillon" id="7" width="400" height="350" style="display:none; text-align:center"  />
       <img src="image/pierres.jpg" title="pierre" alt="pierre" id="8" width="400" height="350" style="display:none" />
        <img src="image/vagues.jpg" title="vagues" alt="vagues" id="9" width="400" height="350" style="display:none; text-align:center"  />
       <img src="image/riviere.jpg" title="riviere" alt="riviere" id="10" width="400" height="350" style="display:none" />
     </div>
    </body>
    </html>

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. afficher une image par défaut dans une div
    Par attarias dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 23/12/2010, 16h01
  3. Image par défaut dans une TileList
    Par toopac dans le forum Flex
    Réponses: 1
    Dernier message: 12/04/2010, 10h55
  4. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52
  5. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34

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