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

jQuery Discussion :

Diaporama ne fonctionne que pour la 1ère image


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Diaporama ne fonctionne que pour la 1ère image
    Salut à tous !

    Je débute en jQuery et j'ai un petit problème :

    J'essaie de faire une sorte de diaporama d'images avec lequel on peut passer d'une image à une autre en cliquant sur une flèche (qui est aussi une image). Jusqu'ici tout va bien, la première fois que je clique sur la flèche, la deuxième image remplace bien la première. Mais après, plus rien ! J'ai beau cliquer sur la flèche, mais le code ne s’exécute plus et l'image reste la même.

    Voici mon code HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <img id="flechegauche" class="fleche" src="images/bd/fleche-gauche.png"/>
    <div id="episode1">
        <img class="planche" id="planche10" src="images/bd/episode1/bd-episode1-1.PNG"/>
        <img class="planche" id="planche11" src="images/bd/episode1/bd-episode1-2.PNG" style="display: none"/>
        <img class="planche" id="planche12" src="images/bd/episode1/bd-episode1-3.PNG" style="display: none"/>
    </div>
    <img id="flechedroite" class="fleche" src="images/bd/fleche-droite.png"/>
    <script src="jquery/jquery.js"></script>
    <script src="jquery/bd.js"></script>

    Et le jQuery :

    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
    i = 0;
    if(i==0){
        $('#flechegauche').css('display', 'none');
    }
    if(i==2){
        $('#flechedroite').css('display', 'none');
    }
    var actuel = '#planche1' + i;
    var next = '#planche1' + (i+1);
    var pre = '#planche1' + (i-1);
    $('#flechedroite').on('click', function(){
        $(actuel).css('display', 'none');
        $(next).css('display', 'inline');
        $('#flechegauche').css('display', 'inline');
    });
    $('#flechegauche').on('click', function(){
        $(actuel).css('display', 'none');
        $(pre).css('display', 'inline');
        $('#flechedroite').css('display', 'block');
    });
    Donc je voudrais faire en sorte que le code s'exécute, peut importe l'image sur laquelle je suis, mais je ne vois pas comment faire.

    Pourriez-vous m'aider ?

    Merci à tous et bonne fête de fin d'année !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    Bonjour et bienvenue sur DVP.

    Je n'ai pas de réponse mais je te mets le lien vers une discussion qui est bien le reflet de ce que tu cherches à gérer, Comment faire un site à lecture horizontale ? , le principe est le même, teste l'exemple que j'ai mis au post #11.

  3. #3
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonjour,

    Lors du click sur les flèches, tu ne modifies ni le i, ni actuel, ni next, ni prev.
    La gestion de ces évènements donne donc toujours le même résultat :
    Affichage de next = planche11 pour la flèche droite.

    Fred

  4. #4
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bon ça ne marche que pour 3 images dans le diaporama mais pour le coup l'indice de l'image courante est actualisé lors des click.
    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
     
    (function (window) {
        "use strict";
        var $ = window.jQuery,
            i = 0,
            gestionFleches = function () {
                $('#flechegauche, #flecheDroite').css('display', 'inline');
                if (i === 0) {
                    $('#flechegauche').css('display', 'none');
                }
                if (i === 2) {
                    $('#flechedroite').css('display', 'none');
                }
            };
     
        $('#flechedroite').on('click', function () {
            var actuel = '#planche1' + i,
                next = '#planche1' + (i + 1);
     
            $(actuel).css('display', 'none');
            $(next).css('display', 'inline');
            i += 1;
            gestionFleches();
        });
     
        $('#flechegauche').on('click', function () {
            var actuel = '#planche1' + i,
                pre = '#planche1' + (i - 1);
     
            $(actuel).css('display', 'none');
            $(pre).css('display', 'inline');
            i -= 1;
            gestionFleches();
        });
     
        gestionFleches();
    }(this));

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Bonjour et merci pour vos réponses aussi rapides

    NoSmoking, effectivement ce que tu as fait sur l'autre discussion est extrêmement intéressant merci beaucoup ! Je pense que je vais grandement m'en inspirer

    Merci micetf, visiblement il ne manquait pas grand chose pour que ça marche !

    J'aurais encore 2 questions rapidement avant de mettre résolu :
    Que signifie "use strict" ?
    Et je l'ai appris mais je n'ai aucune mémoire : que veulent dire les triples = ?

    Merci encore

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    - Le mode strict est une acceptation de plus de rigueur dans le code javascript utilisé.
    - Le === est une équivalence stricte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log( 0 =='0');   // true
    console.log( 0 ==='0');  // false

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    D'accord merci beaucoup et bonnes fêtes de fin d'année

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/08/2010, 20h41
  2. Réponses: 0
    Dernier message: 26/08/2009, 14h42
  3. Le FTP ne fonctionne que pour les domaines racines ?
    Par Shudrum dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 29/08/2008, 14h45
  4. Lien pour TELECHARGER une image plutôt que pour l'ouvrir
    Par nabab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2005, 18h07
  5. postgresql v8 pour windows ne fonctionne que 8 jours ?
    Par Guitch dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/10/2004, 10h48

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